当前位置: 首页 > 知识库问答 >
问题:

单击JButton时添加新的JTextFields

范侯林
2023-03-14

我正在开发一个发票系统,我想在每次单击添加新按钮时创建新字段。

每次都需要在下面的代码中添加字段。

字段需要显示在其各自的列下。

    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开发新手

共有1个答案

陈宏胜
2023-03-14

创建您自己的JPanel子类,它表示一个“数据表”或tablecell或任何东西

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));
}
 类似资料:
  • 当用户单击时,我想将不同的添加到我的。 面板必须根据用户单击的按钮进行更改。这是我的代码的一部分: 我该怎么解决这个问题?

  • 我的JButton ActionListener有问题。我在另一个类中定义了一个doTheCleaning()方法,当调用该方法时,会对GUI进行一系列更改。 然后,在另一个类中,我实例化了包含doTheCleaning()方法的类,并用jbutton的actionperformed()方法编写了ActionListener,如下所示: 我知道如何执行其他操作,比如addActionListene

  • 问题内容: 我的JButton ActionListener出现问题。我在另一个类中定义了doTheCleaning()方法,该类在调用时对我的GUI进行了一系列更改。 然后在另一个类中,我实例化了包含doTheCleaning()方法的类,并用我的actionperformed()方法为我的jbutton编写了ActionListener,如下所示: 我知道如何做剩下的事情,例如addActio

  • 问题内容: 我创建了一个扩展JDialog的类,其中有一些复选框和3个按钮:接受,取消和全选。 当用户单击全选时,应选中每个复选框,如果再次单击,则应取消选中每个复选框。效果很好,但我还希望按钮的文本在“全选”和“全选”之间切换。我在这里遇到了麻烦,因此当用户单击按钮并将文本更改为“取消全选”时,该按钮消失了。 我在这里将类简化为最简单的形式: 我看不出有什么问题。有什么帮助吗? 问题答案: 该按

  • 我正在尝试做一些非常简单的事情,在点击按钮时更改文本。 我似乎无法使用它,有人能告诉我添加ActionListener的正确位置吗? 主要类别 atmGUI类 编辑: 这是产生的错误 类型new ActionListener(){}必须实现继承的抽象方法ActionListener.actionPerform(ActionEvent)

  • 我试图创建一个小的GUI,它有2个JButtons和2个JPanels,每个JPanels上都有一些绘图动画。默认情况下,它必须显示第一个JPanel,通过单击第二个JButton我想看到第二个JPanel。所以:我创建了JFrame、Panel1和Panel2,在这里我绘制了我的动画,创建了Button1和Button2,并向它们添加了ActionListeners。我还有一个MainPanel