Java 如何使用JComboBox添加JTextField
我需要知道如果选择了一个JComboBox选项,如何添加一个JTextField,如果选择了另一个选项,我不想再在那里添加该文本字段 这是我的密码:Java 如何使用JComboBox添加JTextField,java,swing,jtextfield,jcombobox,itemlistener,Java,Swing,Jtextfield,Jcombobox,Itemlistener,我需要知道如果选择了一个JComboBox选项,如何添加一个JTextField,如果选择了另一个选项,我不想再在那里添加该文本字段 这是我的密码: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GUI extends JFrame{ //Not sure if this code is correct private JTextField text;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame{
//Not sure if this code is correct
private JTextField text;
private JComboBox box;
private static String[] selector = {"Option 1", "Option 2"};
public GUI(){
super("Title");
setLayout(new FlowLayout());
box = new JComboBox(selector);
add(box);
box.addItemListener(
new ItemListener(){
public void itemStateChanged(ItemEvent e){
if(){
//what should be in the if statement and what should i type down here to add the
//JTextField to the JFrame?
}
}
}
);
}
}
请尝试下一个示例,它将帮助您:
import java.awt.BorderLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class TestFrame extends JFrame {
public TestFrame(){
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
init();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
});
}
private void init() {
final JComboBox<String> box = new JComboBox<String>(new String[]{"1","2"});
final JTextField f = new JTextField(5);
box.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED){
f.setVisible("1".equals(box.getSelectedItem()));
TestFrame.this.revalidate();
TestFrame.this.repaint();
}
}
});
add(box,BorderLayout.SOUTH);
add(f,BorderLayout.NORTH);
}
public static void main(String... s){
new TestFrame();
}
}
当您在组合框中将Visibile设置为true时,只需将JTextField添加到框架并设置VisibleFalse。应该有效。1为了更快地获得更好的帮助,请发布一个最小的完整且可验证的示例。2对于一个空间中的两个或多个组件,请使用如图所示的。JTextField的“备用”组件可能是JPanel。谢谢!这解决了我的问题: