Bevezetés a JButton használatához Java-ban
A Java JButton osztálya nyomógombok létrehozására szolgál, amelyek felhasználhatók bármilyen ActionEvent végrehajtására, amikor rákattintanak. Az eseményművelet elérése érdekében be kell építeni a ActionListener felületet. A Swing gombok összetevője hasonló az AWT gomb komponenséhez, azzal a különbséggel, hogy tartalmazhat szöveget, képet vagy mindkettőt. A JButton osztály kibővíti a JComponent osztályt, és konténerekben használható.
JButton osztály nyilatkozat
A javax.swing.JButton osztály nyilatkozata a következő:
public class JButton extends AbstractButton implements Accessible
A JButton osztályban használt konstruktorok típusai
Alapvetően a JButton osztályban ötféle konstruktor létezik:
1. JButton ()
Ez a kivitelező gombot hoz létre az összetevőben ikon vagy szöveg nélkül.
Példa
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);
)
)
Kimenet:
2. JButton (Húros szöveg)
Ez a kivitelező létrehoz egy gombot az összetevőben, a paraméterekben megadott szöveggel.
Példa
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);
)
)
Kimenet:
3. JButton (ikon kép)
Ez a kivitelező létrehoz egy gombot az összetevőben, a paraméterekben megadott img képpel.
Példa
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);
)
)
Kimenet:
4. JButton (a) művelet
Ez a kivitelező egy gombot hoz létre az összetevőben, amely a paraméterben az Művelet a által megadott tulajdonságokkal rendelkezik.
Példa
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);
)
)
Kimenet:
5. JButton (karakterlánc, ikon kép)
Ez a kivitelező létrehoz egy gombot az összetevőben a szöveggel és a paraméterekben megadott képpel.
Példa
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);
)
)
Kimenet:
A JButton osztály módszerei
Az alábbiakban a JButton osztályban általánosan használt módszerek találhatók:
- Érvénytelen setText (karakterlánc szöveg): Ezt a módszert alapvetően arra használják, hogy a komponens gombján megadott szöveget állítsák be.
- Karakterlánc getText (): Ez a módszer a gomb szövegének visszatérésére szolgál a megadott összetevőben.
- Void setEnabled (logikai b): Ezt a módszert egy gomb engedélyezésére vagy letiltására használják a megfelelő érték átadásával a paraméterben.
- Void setIcon (i ikon): Ez a módszer arra szolgál, hogy a megadott „I” ikont a gombra állítsa.
- Ikon getIcon (): Ez a módszer a megadott gomb ikonjának visszatérésére szolgál.
- Void setHorizontalTextPosition (int hpos): Ezt a módszert a gomb üzenet vízszintes helyzetének az ikonhoz viszonyított beállításához használják.
- Void stVerticalTextPosition (int vpos): Ezt a módszert kell használni a gomb üzenet függőleges helyzetének az ikonhoz viszonyított beállításához.
Példa a JButton osztályra
Az alábbiakban bemutatjuk a JButton osztály példáját:
CRUD művelet a JTable-n
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
)
Kimenet:
Következtetések - JButton Java-ban
A JButton osztály felhasználható egy gombkomponens létrehozására, amely az összetevő változtatásait dinamikus módon hajtja végre, mint a fenti példa.
Ajánlott cikkek
Ez egy útmutató a JButton használatához Java-ban. Itt a JButton osztályban alkalmazott konstruktorok típusait, valamint a módszereket és a példákat tárgyaljuk. A további javasolt cikkeken keresztül további információkat is megtudhat -
- JTextField Java
- JDialog Java
- BorderLayout Java-ban
- CardLayout Java-ban
- JPanel Java (konstruktorok)
- GroupLayout Java-ban
- Példák JFrame-re Java-ban
- JLabel Java
- Teljes útmutatás a Java kivitelezéshez
- Módszerek és program JTable Java