我正在开发发票系统,我想在每次单击“添加新”按钮时创建新字段。
每次都需要添加下面代码中的字段。
这些字段需要显示在其各自的列下。
JPanel panel_2 = new JPanel();
panel_2.setBounds(10, 256, 990, 303);
panel.add(panel_2);
panel_2.setLayout(null);
code = new JTextField();
code.setBounds(10, 11, 86, 20);
panel_2.add(code);
code.setColumns(10);
code.setEditable(false);
desc = new JTextField();
desc.setBounds(106, 11, 345, 20);
panel_2.add(desc);
desc.setColumns(10);
desc.setEditable(false);
quantity = new JTextField("0");
quantity.setBounds(461, 11, 86, 20);
panel_2.add(quantity);
quantity.setColumns(10);
quantity.setEditable(false);
price = new JTextField("0");
price.setBounds(557, 11, 106, 20);
panel_2.add(price);
price.setColumns(10);
price.setEditable(false);
individualTotal = new JTextField();
individualTotal.setBounds(673, 11, 106, 20);
panel_2.add(individualTotal);
individualTotal.setColumns(10);
individualTotal.setEditable(false);
下面是我设置的按钮:
JButton newEntry = new JButton("+");
newEntry.setBackground(Color.PINK);
newEntry.setForeground(Color.BLUE);
newEntry.setFont(new Font("Tahoma", Font.BOLD, 15));
newEntry.setBounds(10, 204, 57, 20);
panel.add(newEntry);
newEntry.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
code.setEditable(true);
desc.setEditable(true);
quantity.setEditable(true);
price.setEditable(true);
individualTotal.setEditable(true);
}
});
newEntry.setEnabled(false);
JButton minusEntry = new JButton("-");
minusEntry.setBackground(Color.PINK);
minusEntry.setForeground(Color.RED);
minusEntry.setFont(new Font("Wide Latin", Font.BOLD, 16));
minusEntry.setBounds(77, 205, 57, 20);
panel.add(minusEntry);
minusEntry.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
code.setEditable(false);
desc.setEditable(false);
quantity.setEditable(false);
price.setEditable(false);
individualTotal.setEditable(false);
}
});
minusEntry.setEnabled(false);
我知道这个网站上一定有答案,但我似乎找不到它。
另请注意,我是 Java 开发新手
最佳答案
创建您自己的 JPanel 子类,它代表一个“数据表”或表格单元格或其他内容
public DataPanel extends JPanel{
private JTextField field1 = new JTextField();
private JTextField field2 = new JTextField();
// ..... and so on
public DataPanel(YourDataObject data){
field1.setText(data.getValue1());
field2.setText(data.getValue2());
// ... and so on
// then add all of your text fields to the panel
add(field1);
add(field2);
// .... and so on
}
}
然后单击按钮,将面板添加到要显示它的组件
onClick(SomeEvent event){
yourComponent.add(new DataPanel(yourDataObject));
}
关于java - 单击 JButton 添加新的 JTextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49561432/