JButton en Java - Constructeurs avec méthode et exemple de classe JButton

Table des matières:

Anonim

Introduction à JButton en Java

La classe JButton en Java est utilisée pour créer des boutons poussoirs qui peuvent être utilisés pour exécuter n'importe quel ActionEvent chaque fois qu'il est cliqué. Afin de réaliser l'action d'événement, l'interface ActionListener doit être implémentée. Le composant Boutons dans Swing est similaire à celui du composant bouton AWT, sauf qu'il peut contenir du texte, une image ou les deux. La classe JButton étend la classe JComponent et peut être utilisée dans un conteneur.

Déclaration de classe JButton

La déclaration de la classe javax.swing.JButton est ci-dessous:

public class JButton extends AbstractButton implements Accessible

Types de constructeurs utilisés dans la classe JButton

Il existe cinq types de constructeurs essentiellement utilisés dans la classe JButton:

1. JButton ()

Ce constructeur créera un bouton dans le composant sans icône ni texte.

Exemple

import java.awt.*;
import javax.swing.*;
public class JButtonExample (
public static void main(String() args) (
JFrame frame=new JFrame("Button Example");
JButton b=new JButton();
b.setPreferredSize(new Dimension(100, 30));
frame.add(b);
frame.setSize(500, 500);
frame.setLayout(new FlowLayout());
frame.setVisible(true);
)
)

Production:

2. JButton (texte de chaîne)

Ce constructeur créera un bouton dans le composant avec le texte spécifié dans les paramètres.

Exemple

import java.awt.*;
import javax.swing.*;
public class JButtonExample (
public static void main(String() args) (
JFrame frame=new JFrame("Button Example");
JButton b=new JButton("Click Here");
b.setPreferredSize(new Dimension(100, 30));
frame.add(b);
frame.setSize(500, 500);
frame.setLayout(new FlowLayout());
frame.setVisible(true);
)
)

Production:

3. JButton (Icon img)

Ce constructeur créera un bouton dans le composant avec l'image img donnée dans les paramètres.

Exemple

import java.awt.*;
import javax.swing.*;
public class JButtonExample (
public static void main(String() args) (
JFrame frame=new JFrame("Button Example");
JButton b=new JButton(new ImageIcon("C:\\custom.png.webp"));
frame.add(b);
frame.setSize(500, 500);
frame.setLayout(new FlowLayout());
frame.setVisible(true);
)
)

Production:

4. JButton (Action a)

Ce constructeur créera un bouton dans le composant avec les propriétés fournies par l'action et dans le paramètre.

Exemple

importawt.*;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class JButtonExample extends JFrame(
private JButton reg;
private Action action = new buttonAction();
public JButtonExample() (
super("JButton Demo example");
setLayout(new FlowLayout());
reg = new JButton(action);
reg.setPreferredSize(new Dimension(100, 30));
add(reg);
)
public class buttonAction extends AbstractAction(
public void actionPerformed(ActionEvent e)
(
JOptionPane.showMessageDialog(null, "Button click");
)
)
public static void main(String() args) (
JButtonExample jb = new JButtonExample();
jb.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jb.setSize(300, 300);
jb.setVisible(true);
)
)

Production:

5. JButton (texte de chaîne, icône img)

Ce constructeur créera un bouton dans le composant avec le texte et l'image spécifiée dans les paramètres.

Exemple

import java.awt.*;
import javax.swing.*;
public class JButtonExample (
public static void main(String() args) (
JFrame frame=new JFrame("Button Example");
JButton b=new JButton("Click here", new ImageIcon("C:\\custom.png.webp"));
frame.add(b);
frame.setSize(500, 500);
frame.setLayout(new FlowLayout());
frame.setVisible(true);
)
)

Production:

Méthodes de la classe JButton

Voici les méthodes couramment utilisées dans la classe JButton:

  1. Void setText (string text): Cette méthode est essentiellement utilisée pour définir le texte spécifié sur le bouton du composant.
  2. String getText (): Cette méthode est utilisée pour renvoyer le texte du bouton dans le composant spécifié.
  3. Void setEnabled (boolean b): Cette méthode est utilisée pour activer ou désactiver un bouton en passant la valeur appropriée dans le paramètre.
  4. Void setIcon (icône i): Cette méthode est utilisée pour définir l'icône spécifiée «I» sur le bouton.
  5. Icon getIcon (): Cette méthode est utilisée pour renvoyer l'icône du bouton spécifié.
  6. Void setHorizontalTextPosition (int hpos): Cette méthode est utilisée pour définir la position horizontale du message du bouton par rapport à son icône.
  7. Void stVerticalTextPosition (int vpos): Cette méthode est utilisée pour définir la position verticale du message du bouton par rapport à son icône.

Exemple de classe JButton

Voici l'exemple de la classe JButton:

Opération CRUD sur JTable

package jbuttonapplication;
import javax.swing.table.DefaultTableModel;
public class NewJFrame extends javax.swing.JFrame (
public NewJFrame() (
initComponents();
)
private void initComponents() (
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
rno = new javax.swing.JTextField();
fname = new javax.swing.JTextField();
lname = new javax.swing.JTextField();
add = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jbtable = new javax.swing.JTable();
jbnew = new javax.swing.JButton();
jbadd = new javax.swing.JButton();
jbupdate = new javax.swing.JButton();
jbdelete = new javax.swing.JButton();
label = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("Roll No");
jLabel2.setText("First Name");
jLabel3.setText("Last Name");
jLabel4.setText("Address");
jbtable.setModel(new javax.swing.table.DefaultTableModel(
new Object ()() (
),
new String () (
"Roll No", "First Name", "Last Name", "Address"
)
) (
Class() types = new Class () (
java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
);
public Class getColumnClass(int columnIndex) (
return types (columnIndex);
)
));
jbtable.addMouseListener(new java.awt.event.MouseAdapter() (
public void mouseClicked(java.awt.event.MouseEvent evt) (
jbtableMouseClicked(evt);
)
));
jScrollPane1.setViewportView(jbtable);
jbnew.setText("New");
jbnew.addActionListener(new java.awt.event.ActionListener() (
public void actionPerformed(java.awt.event.ActionEvent evt) (
jbnewActionPerformed(evt);
)
));
jbadd.setText("Add");
jbadd.addActionListener(new java.awt.event.ActionListener() (
public void actionPerformed(java.awt.event.ActionEvent evt) (
jbaddActionPerformed(evt);
)
));
jbupdate.setText("Update");
jbupdate.addActionListener(new java.awt.event.ActionListener() (
public void actionPerformed(java.awt.event.ActionEvent evt) (
jbupdateActionPerformed(evt);
)
));
jbdelete.setText("Delete");
jbdelete.addActionListener(new java.awt.event.ActionListener() (
public void actionPerformed(java.awt.event.ActionEvent evt) (
jbdeleteActionPerformed(evt);
)
));
label.setForeground(new java.awt.Color(204, 0, 0));
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(136, 136, 136)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel2)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel3)
.addComponent(jbnew))))
.addGap(37, 37, 37)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(rno, javax.swing.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
.addComponent(fname)
.addComponent(lname)
.addComponent(add))
.addGap(32, 32, 32)
.addComponent(label, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jbadd)
.addGap(46, 46, 46)
.addComponent(jbupdate)
.addGap(74, 74, 74)
.addComponent(jbdelete))))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(2, 2, 2)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(177, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(117, 117, 117)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(rno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(label))
.addComponent(jLabel1))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(fname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(lname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(add, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(46, 46, 46)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jbnew)
.addComponent(jbadd)
.addComponent(jbupdate)
.addComponent(jbdelete))
.addGap(52, 52, 52)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(328, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
pack();
)
private void jbnewActionPerformed(java.awt.event.ActionEvent evt) (
rno.setText("");
fname.setText("");
lname.setText("");
add.setText("");
)
private void jbaddActionPerformed(java.awt.event.ActionEvent evt) (
label.setText("");
DefaultTableModel model = (DefaultTableModel)jbtable.getModel();
if(!rno.getText().isEmpty()&&!fname.getText().isEmpty()
&&!lname.getText().isEmpty()&&!add.getText().isEmpty())
(
model.addRow(new Object()(rno.getText().trim(), fname.getText().trim(),
lname.getText().trim(), add.getText().trim()));
)
else
(
label.setText("All the fields should be filled");
)
)
private void jbtableMouseClicked(java.awt.event.MouseEvent evt) (
DefaultTableModel model = (DefaultTableModel)jbtable.getModel();
rno.setText(model.getValueAt(jbtable.getSelectedRow(), 0).toString());
fname.setText(model.getValueAt(jbtable.getSelectedRow(), 1).toString());
lname.setText(model.getValueAt(jbtable.getSelectedRow(), 2).toString());
add.setText(model.getValueAt(jbtable.getSelectedRow(), 3).toString());
)
private void jbupdateActionPerformed(java.awt.event.ActionEvent evt) (
label.setText("");
DefaultTableModel model = (DefaultTableModel)jbtable.getModel();
if(jbtable.getSelectedRow()==-1)
(
if(jbtable.getRowCount()==0)
(
label.setText("Table is Empty");
)
else
(
label.setText("No Row Selected to Update");
)
)
else
(
model.setValueAt(rno.getText(), jbtable.getSelectedRow(), 0);
model.setValueAt(fname.getText(), jbtable.getSelectedRow(), 1);
model.setValueAt(lname.getText(), jbtable.getSelectedRow(), 2);
model.setValueAt(add.getText(), jbtable.getSelectedRow(), 3);
)
)
private void jbdeleteActionPerformed(java.awt.event.ActionEvent evt) (
label.setText("");
DefaultTableModel model = (DefaultTableModel)jbtable.getModel();
if(jbtable.getSelectedRow()==-1)
(
if(jbtable.getRowCount()==0)
(
label.setText("Table is Empty");
)
else
(
label.setText("No Row Selected to Update");
)
)
else
(
model.removeRow(jbtable.getSelectedRow());
)
)
public static void main(String args()) (
try (
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) (
if ("Nimbus".equals(info.getName())) (
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
)
)
) catch (ClassNotFoundException ex) (
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
) catch (InstantiationException ex) (
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
) catch (IllegalAccessException ex) (
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
) catch (javax.swing.UnsupportedLookAndFeelException ex) (
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
)
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() (
public void run() (
new NewJFrame().setVisible(true);
)
));
)
// Variables declaration - do not modify
private javax.swing.JTextField add;
private javax.swing.JTextField fname;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton jbadd;
private javax.swing.JButton jbdelete;
private javax.swing.JButton jbnew;
private javax.swing.JTable jbtable;
private javax.swing.JButton jbupdate;
private javax.swing.JLabel label;
private javax.swing.JTextField lname;
private javax.swing.JTextField rno;
// End of variables declaration
)

Production:

Conclusions - JButton en Java

La classe JButton peut être utilisée pour créer un composant bouton pour effectuer les modifications du composant de manière dynamique comme dans l'exemple ci-dessus.

Articles recommandés

Ceci est un guide de JButton en Java. Nous discutons ici des types de constructeurs utilisés dans la classe JButton ainsi que des méthodes et des exemples. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. JTextField en Java
  2. JDialog en Java
  3. BorderLayout en Java
  4. CardLayout en Java
  5. JPanel en Java (constructeurs)
  6. GroupLayout en Java
  7. Exemples de JFrame en Java
  8. JLabel en Java
  9. Guide complet de Flowlayout en Java
  10. Méthodes et programme JTable en Java