0
我已經創建,其中Java程序:如何通過單擊jTable添加新行?
用戶可以通過使用自定義JOption showConfirmDialog的箱(具有添加面板和文本框)的輸入數據
我使用一個單獨的方法爲用戶輸入
public static String[] MultiInput(){
JTextField idField = new JTextField(5);
JTextField nameField = new JTextField(5);
JTextField addressField = new JTextField(5);
JTextField ageField = new JTextField(5);
JPanel myPanel = new JPanel();
myPanel.add(new JLabel("ID number:"));
myPanel.add(idField);
myPanel.add(Box.createHorizontalStrut(15)); // for spacing
myPanel.add(new JLabel("Name:"));
myPanel.add(nameField);
myPanel.add(Box.createHorizontalStrut(15)); // for spacing
myPanel.add(new JLabel("Address:"));
myPanel.add(addressField);
myPanel.add(Box.createHorizontalStrut(15)); // for spacing
myPanel.add(new JLabel("Age:"));
myPanel.add(ageField);
int result = JOptionPane.showConfirmDialog(null, myPanel,
"Please Enter Data Here:", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
String[] Input={idField.getText(),nameField.getText(),addressField.getText(),ageField.getText()};
return Input;
}
return null;
}
,並調用該方法,一旦用戶點擊JTable中
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
int row = jTable1.getSelectedRow();
String[] input;
input =MultiInput(); // get input from user
for(int ctr=0;ctr<jTable1.getColumnCount();ctr++){
jTable1.setValueAt(input[ctr], row, ctr);
}
用戶的行填充TextField並在單擊「確定」後,在jTable的選定行中設置值。
問題是我想如果用戶點擊JTable中創建輸入一個新行
編輯:
這是我建立了我的JTable和表型號
final DefaultTableModel model = new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"idnum", "name", "adress", "age"
}
);
jTable1 = new javax.swing.JTable();
jTable1.setAutoCreateRowSorter(true);
jTable1.setModel(model);
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable1MouseClicked(evt);
}
});
jScrollPane1.setViewportView(jTable1);
使用'TableModel'來添加行。你使用的是什麼類型的TableModel?也許看看[如何使用表格](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html) – MadProgrammer
@MadProgrammer我認爲這是默認的Table Model。它在這裏說,**'jTable1.setModel(new javax.swing.table.DefaultTableModel(....'** –
@trashgod您向我們展示的喜歡說,_創建動態表添加新的條目**與按鈕** 。我想要的是創建一個新的行輸入,如果用戶**「點擊」** jTable。我想我會嘗試MadProgrammer的建議 –