IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Button + JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    679
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 679
    Par défaut Button + JTable
    salut tout le monde,

    voila j'ai un petit problème avec mon interface graphique. J'aimerai ajouter un bouton mais le soucis c'est que je travail avec un JTable. enfin voici mon code pour mon interface.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     private JTable getJTable() {
     if (jTable == null) {
    Object[][] data = { {"", ""}, {"", ""}, {"", ""} };
    String[] columnNames = {"MATRICULE","NOM et PRENOM ","valider" };
    tableModel = new DefaultTableModel(data, columnNames) {
     };
    jTable = new JTable(tableModel);
    jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    jTable.getColumnModel().getColumn(0).setPreferredWidth(100);
    jTable.getColumnModel().getColumn(1).setPreferredWidth(300);
    jTable.getColumnModel().getColumn(2).setPreferredWidth(100);
    jTable.setBackground(Color.orange);
    jTable.setIntercellSpacing(new Dimension(2, 1));
    jTable.setRowHeight(24);
    jTable.setLocation(new Point(2, 0));
    jTable.setFont(new Font("Arial", Font.PLAIN, 14));
    }
    return jTable;
    }
    merci d'avance

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Tu trouveras la réponse à ta question (et à bien d'autres également) en suivant le tutoriel suivant: http://baptiste-wicht.developpez.com.../swing/jtable/

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    679
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 679
    Par défaut
    bonsoir

    si je clic sur le bouton de jtable alors une fenêtre s'ouvre "chauffeur" derrière

    le problème que je veux que cette fenêtre affiche au dessus la fenetre "mission"

    voila la fenêtre mission
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
     
     
    import javax.swing.SwingUtilities;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import java.awt.Rectangle;
    import javax.swing.ImageIcon;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import java.awt.Dimension;
    import java.awt.Color;
    import java.awt.Point;
     
    import javax.swing.JCheckBox;
    import javax.swing.table.DefaultTableModel;
     
     
    public class mission extends JFrame {
     int columns;
     int row;
     public static mission musta1=null;
     DefaultTableModel tableModel;
     private static final long serialVersionUID = 1L;
     private JPanel jContentPane = null;
     private JScrollPane jScrollPane = null;
     private JTable jTable = null;
     private JScrollPane getJScrollPane() {
    if (jScrollPane == null) {
    jScrollPane = new JScrollPane();
    jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    jScrollPane.setBounds(new Rectangle(89, 54, 643, 209));
    jScrollPane.setViewportView(getJTable());
    }
    return jScrollPane;
    }
    private JTable getJTable() {
    if (jTable == null) {
    String[] columnNames = {"matricule","","Last Name"    };
    Object[][] data = { {"Kathy", ""},{"John", ""} };
    tableModel = new DefaultTableModel(data, columnNames) {
    };
    		jTable = new JTable(tableModel);
    		jTable.getColumn("").setCellRenderer(new ButtonRenderer());
    		 jTable.getColumn("").setCellEditor(new ButtonEditor(new JCheckBox()));
      jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    		  jTable.getColumnModel().getColumn(0).setPreferredWidth(100);
    	        jTable.getColumnModel().getColumn(1).setPreferredWidth(20);
    	  jTable.setBackground(Color.orange);
    			jTable.setIntercellSpacing(new Dimension(2, 1));
     
     
    		     jTable.addMouseListener(new java.awt.event.MouseAdapter() {
    	              	public void mouseClicked(java.awt.event.MouseEvent e) {
    	              		Point p=e.getPoint();
    	              	  row=jTable.rowAtPoint(p);			 
     
    	              	}
    	              });
    	}
            return jTable;
        }
    public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    mission thisClass = new mission();
                    thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    thisClass.setVisible(true);
                    thisClass.setResizable (false);
                    thisClass.setLocationRelativeTo(null);
                }
            });
        }
     
     
     
     
        public mission() {
            super();
            initialize();
        }
     
     
        private void initialize() {
        	musta1=this;
            this.setSize(963, 623);
     
            this.setContentPane(getJContentPane());
     
     
     
        }
     
     
        private JPanel getJContentPane() {
            if (jContentPane == null) {
                jContentPane = new JPanel();
                jContentPane.setLayout(null);
                jContentPane.setBackground(new Color(0, 138, 255));
                jContentPane.add(getJScrollPane(), null);
            }
            return jContentPane;
        }
        public void MaMethode1(String cv ){  
     
        	tableModel.setValueAt(cv,row, 2);
        System.out.println( "ddddddddddddd    " +row);
     
        		   }
      }
    et la fenêtre chauffeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
     
    import javax.swing.SwingUtilities;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import java.awt.Rectangle;
    import java.awt.Color;
     
    import javax.swing.ImageIcon;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    import javax.swing.JMenu;
    import javax.swing.border.TitledBorder;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
     import javax.swing.JScrollPane;
    import javax.swing.event.UndoableEditEvent;
     
     public class chauffeur  extends JFrame {
    	  //  @jve:decl-index=0:
    	private static final long serialVersionUID = 1L;
     String valeur;
     String pato1;
     String pato2;
    	private JPanel jContentPane = null;
    int k=0;
    	private JPanel jPanel = null;
    	int reste1;
    	private String matricule;
    	String nom ,datee  ,datef ,affectation ;
    	private JMenu jMenu4 = null;
     
    	private JMenu jMenu5 = null;
     
    	String dd1,dd2,pato;
    	String datesaisi;
    	String dd3;
    	private JLabel jLabel41 = null;
    	private JTextField jTextField112 = null;
    	private JButton jButton1 = null;
    	private JPanel jPanel1 = null;
    	private JMenuItem jMenuItem6 = null;
    	private JMenuItem jMenuItem2 = null;
    	private JButton jButton = null;
    	/**
             * This method initializes jPanel       
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getJPanel() {
    		if (jPanel == null) {
     
    			jLabel41 = new JLabel();
    			jLabel41.setText("NOM");
    			jLabel41.setBounds(new Rectangle(25, 119, 80, 37));
    			jPanel = new JPanel();
    			jPanel. setBorder(new TitledBorder("  CHAUFFEUR "));
    			jPanel.setLayout(null);
    			jPanel.setBounds(new Rectangle(21, 15, 900, 598));
    			jPanel.setBackground(new Color(0, 138, 255));
    			jPanel.add(getJPanel1(), null);
    		}
    		return jPanel;
    	}
     
    	private JTextField getJTextField112() {
    		if (jTextField112 == null) {
    			jTextField112 = new JTextField();
    			jTextField112.setBounds(new Rectangle(131, 113, 125, 50));
    		}
    		return jTextField112;
    	}
     
     
    	/**
             * This method initializes jPanel1      
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getJPanel1() {
    		if (jPanel1 == null) {
    			jPanel1 = new JPanel();
    			jPanel1.setLayout(null);
    			jPanel1.setBounds(new Rectangle(11, 54, 879, 439));
    			jPanel1.setBackground(new Color(205, 193, 71));
     
    			jPanel1.add(jLabel41, null);
    			jPanel1.add(getJTextField112(), null);
    			jPanel1.add(getJButton(), null);
    		}
    		return jPanel1;
    	}
     
    	/**
             * This method initializes jButton      
             *      
             * @return javax.swing.JButton  
             */
    	private JButton getJButton() {
    		if (jButton == null) {
    			jButton = new JButton();
    			jButton.setBounds(new Rectangle(326, 171, 105, 46));
    			jButton.setText("valider");
    			jButton.addActionListener(new java.awt.event.ActionListener() {
    				public void actionPerformed(java.awt.event.ActionEvent e) {
     mission a1 =  mission.musta1; 
    String civ = "heheheh";
    a1. MaMethode1(civ);  
    a1.setVisible(true);
    setVisible(false);
     
     
    				}
    			});
    		}
    		return jButton;
    	}
     
    	public static void main(String[] args) {
     
    		SwingUtilities.invokeLater(new Runnable() {
    			public void run() {
    				chauffeur thisClass = new chauffeur();
    				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    				thisClass.setVisible(true);
    				thisClass.setResizable (false);
     
     
    				thisClass.setLocationRelativeTo(null);
    			}
    		});
     
     
     
    	}
     
     
    	public chauffeur() {
    		super();
    		initialize();
    	}
     
     
    	private void initialize() {
    		 this.setSize(963, 679);
    		this.setBackground(new Color(0, 138, 255));
    		this.setContentPane(getJContentPane());
     
    		 this.requestFocus();
    	}
     
     
     
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			jContentPane = new JPanel();
    			jContentPane.setLayout(null);
    			jContentPane.setBackground(new Color(0, 138, 255));
    			jContentPane.add(getJPanel(), null);
     
    		}
    		return jContentPane;
    	}
     
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
     
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.table.*;
     
    /**
     * @version 1.0 11/09/98
     */
    public class ButtonRenderer extends JButton implements TableCellRenderer {
     
      public ButtonRenderer() {
        setOpaque(true);
      }
     
      public Component getTableCellRendererComponent(JTable table, Object value,
                       boolean isSelected, boolean hasFocus, int row, int column) {
        if (isSelected) {
          setForeground(table.getSelectionForeground());
          setBackground(table.getSelectionBackground());
        } else{
          setForeground(table.getForeground());
          setBackground(UIManager.getColor("Button.background"));
        }
        setText( (value ==null) ? "" : value.toString() );
        return this;
      }
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
     
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;
     
     
    public class ButtonEditor extends DefaultCellEditor {
      protected JButton button;
      private String    label;
      private boolean   isPushed;
     
      public ButtonEditor(JCheckBox checkBox) {
        super(checkBox);
        button = new JButton();
        button.setOpaque(true);
        button.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            fireEditingStopped();
          }
        });
      }
     
      public Component getTableCellEditorComponent(JTable table, Object value,
                       boolean isSelected, int row, int column) {
        if (isSelected) {
          button.setForeground(table.getSelectionForeground());
          button.setBackground(table.getSelectionBackground());
        } else{
          button.setForeground(table.getForeground());
          button.setBackground(table.getBackground());
        }
        label = (value ==null) ? "" : value.toString();
        button.setText( label );
        isPushed = true;
        return button;
      }
     
      public Object getCellEditorValue() {
        if (isPushed)  {
          // 
          // 
        	chauffeur a = new chauffeur();
    		a.setVisible(true);
     
     
        }
        isPushed = false;
        return new String( label ) ;
      }
     
      public boolean stopCellEditing() {
        isPushed = false;
        return super.stopCellEditing();
      }
     
      protected void fireEditingStopped() {
        super.fireEditingStopped();
      }
    }

    je n'ai pas trouvé comment faire que la fenetre chauffeur affiche au dessus sur la fenetre mission

  4. #4
    Membre confirmé
    Homme Profil pro
    Chef de projet, développeur .net
    Inscrit en
    Juin 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet, développeur .net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 76
    Par défaut
    Salut,
    si ta fenêtre doit toujours s'afficher en premier plan, tu peu tester en changeant ta JFrame par une JDialog.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     public class chauffeur  extends JDialog {
    	  //  @jve:decl-index=0:
    	private static final long serialVersionUID = 1L;
    quand tu la créée tu lui passe en paramétre ta Jframe mére:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chauffeur a = new chauffeur(fenetreMission);
    Elle devrait s'affichait devant la fenétre Mission

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    679
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 679
    Par défaut
    Citation Envoyé par ElSpopo Voir le message
    Salut,
    si ta fenêtre doit toujours s'afficher en premier plan, tu peu tester en changeant ta JFrame par une JDialog.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     public class chauffeur  extends JDialog {
    	  //  @jve:decl-index=0:
    	private static final long serialVersionUID = 1L;
    quand tu la créée tu lui passe en paramétre ta Jframe mére:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chauffeur a = new chauffeur(fenetreMission);
    Elle devrait s'affichait devant la fenétre Mission

    pas compris ce que tu m'as expliqué

Discussions similaires

  1. un JTable avec des buttons
    Par chakirlbr dans le forum Débuter
    Réponses: 2
    Dernier message: 16/04/2015, 18h07
  2. Add/Edit Button JTable
    Par DAILOS dans le forum Composants
    Réponses: 3
    Dernier message: 03/02/2013, 11h53
  3. jTable avec une colonne de type button radio
    Par RouRa22 dans le forum Composants
    Réponses: 1
    Dernier message: 20/11/2008, 17h36
  4. [débutant] Button + JTable
    Par cyrill.gremaud dans le forum Composants
    Réponses: 4
    Dernier message: 30/10/2006, 10h25
  5. Réponses: 9
    Dernier message: 12/08/2002, 07h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo