gpt4 book ai didi

java - 自动出现 JTextField

转载 作者:行者123 更新时间:2023-11-29 07:39:16 25 4
gpt4 key购买 nike

拜托,我怎样才能自动显示用户在 JComboBox 中选择的一些 JTextField ?我的例子很简单。我的盒子里有一个 JComboBox,可以进行一些操作。根据用户从此 JComboBox 选择的内容,我会出现一个或多个 JTextField。

我有这个代码:

public static void main(String[] args) {

javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
CalculatriceFenetre fenetre = new CalculatriceFenetre();
fenetre.setVisible(true);
}
});
}

.

public class CalculatriceFenetre extends JFrame {

private JTextField field1, field2;
private JComboBox liste;

public CalculatriceFenetre() {
super();

build();
}

private void build() {
setTitle("Calculatrice");
setSize(400, 200);
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(buildContentPane());
}

private JPanel buildContentPane() {
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
panel.setBackground(Color.white);

field1 = new JTextField();
field1.setColumns(10);

field2 = new JTextField();
field2.setColumns(10);
field2.setVisible(false);

panel.add(field1);
panel.add(field2);

liste = new JComboBox(new OperateursModel());
liste.addActionListener(new CustomActionListener());
panel.add(liste);

return panel;
}

class CustomActionListener implements ActionListener {

public void actionPerformed(ActionEvent e) {
if (liste.getSelectedItem().equals("op1")) {
field2.setVisible(true);
}
}
}

.

public class OperateursModel extends DefaultComboBoxModel {
private ArrayList<String> operateurs;

public OperateursModel(){
super();
operateurs = new ArrayList<String>();
operateurs.add("op1");

}

public String getSelectedOperateur(){
return (String)getSelectedItem();
}

@Override
public Object getElementAt(int index) {
return operateurs.get(index);
}

@Override
public int getSize() {
return operateurs.size();
}

@Override
public int getIndexOf(Object element) {
return operateurs.indexOf(element);
}
}

最佳答案

And depending on what the user choose from this JComboBox, I appear one or more JTextField.

然后您可以编写一个 ActionListener 来处理从组合框中选择一个项目。

您可以先阅读 How to Use a Combo Box 上的 Swing 教程部分。一个使用 ActionListener 的工作示例。

在您的情况下,您想向框架添加一个文本字段,因此代码类似于:

JTextField textField = new JTextField(10);
frame.add( textField );
frame.revalidate();
frame.repaint();

此外,您无需创建自定义 ComboBoxModel。您可以只将项目添加到默认模型。同样,本教程将向您展示如何执行此操作。

关于java - 自动出现 JTextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32103265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com