[英]Data from JTextField to JTable
我想將文本框中輸入的數據添加到表中並繼續增加ID。 單擊“添加”按鈕時添加數據。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ex1 extends JFrame {
GridLayout experimentLayout = new GridLayout(3, 3);
private javax.swing.JButton jButton1,jButton2,jButton3;
private javax.swing.JLabel jLabel1, jLabel2, jLabel3;
private javax.swing.JTextField jTextField1,jTextField2,jTextField3;
String columns[] = {"ID","Name","Age","Gender"};
Object data[][] = {
{"0","Tom",new Integer(20),"Male"},
{"1","Tina", new Integer(18), "Female"},
{"2","Raj",new Integer(19),"Male"}
};
public void addComponentsToPane(final Container pane) {
final JPanel compsToExperiment = new JPanel();
compsToExperiment.setLayout(experimentLayout);
JPanel controls = new JPanel();
controls.setLayout(new GridLayout(8, 3));
jLabel1 = new javax.swing.JLabel("Name: ");
jLabel2 = new javax.swing.JLabel("Age: ");
jLabel3 = new javax.swing.JLabel("Gender: ");
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jTextField3 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton("Add");
jButton2 = new javax.swing.JButton("Next");
jButton3 = new javax.swing.JButton("Per");
compsToExperiment.add(jLabel1);
compsToExperiment.add(jLabel2);
compsToExperiment.add(jLabel3);
compsToExperiment.add(jTextField1);
compsToExperiment.add(jTextField2);
compsToExperiment.add(jTextField3);
compsToExperiment.add(jButton1);
JTable table = new JTable(data,columns);
controls.add(table.getTableHeader());
controls.add(table);
pane.add(compsToExperiment, BorderLayout.NORTH);
pane.add(controls, BorderLayout.CENTER);
}
/**
* Create the GUI and show it. For thread safety, this method is invoked
* from the event dispatch thread.
*/
private static void createAndShowGUI() {
ex1 frame = new ex1();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.addComponentsToPane(frame.getContentPane());
frame.setSize(500,500);
//frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(
"javax.swing.plaf.metal.MetalLookAndFeel");
} catch (UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
} catch (IllegalAccessException ex) {
ex.printStackTrace();
} catch (InstantiationException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
/* Turn off metal's use of bold fonts */
UIManager.put("swing.boldMetal", Boolean.FALSE);
// Schedule a job for the event dispatch thread:
// creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
我知道設計已經到處開始學習java了,隨便指出可以做出的改進。 先感謝您 :)
要添加在JTextFields
輸入的數據,您需要在添加按鈕中注冊一個ActionListener
,在本例中為jButton1
。
要向表模型添加條目,可以使用可變模型,例如DefaultTableModel
:
DefaultTableModel model = new DefaultTableModel(data, columns);
在ActionListener
的actionPerformed
方法中,您將擁有:
String nextRowId = Integer.toString(model.getRowCount());
model.addRow(new Object[] {
nextRowId,
jTextField1.getText(),
jTextField2.getText(),
jTextField3.getText() });
建議如下:
JTable
分配更多空間,這可能會占用大量數據。 也放在JScrollPane
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.