Java根据组合框的值隐藏/显示JTextFields

Java根据组合框的值隐藏/显示JTextFields,java,combobox,Java,Combobox,我可以理解这些概念,但是代码(包)如何相互作用对我来说是一个相当大的挑战 够了,我的问题是: 我想.setVisible()aJTextField,具体取决于组合框中设置的值。如果我(或其他用户)将组合框中的值设置为“隐藏”,则JTextField应设置为setVisible(false) 这是我的密码: /* JTextField Show Hide Example This java example shows how to show or hide JTextField

我可以理解这些概念,但是代码(包)如何相互作用对我来说是一个相当大的挑战

够了,我的问题是:

我想
.setVisible()
a
JTextField
,具体取决于组合框中设置的值。如果我(或其他用户)将组合框中的值设置为“隐藏”,则
JTextField
应设置为
setVisible(false)

这是我的密码:

/*
    JTextField Show Hide Example
    This java example shows how to show or hide JTextField
    using Java Swing JTextField class.
*/


import java.awt.FlowLayout;
import javax.swing.JApplet;
import javax.swing.JComboBox;
import javax.swing.JTextField;

public class JTextFieldShowHideExample extends JApplet{

    public void init(){

            //set flow layout for the applet
            this.getContentPane().setLayout(new FlowLayout());

            //create new JTextField
            JTextField field = new JTextField("JTextField Show Hide Example", 20);
            field.setVisible(true);
            add(field);

            String[] choiceShowHide =  
                { "" + "Show","Hide"
                };
            final JComboBox<String> cbchoiceShowHide = new JComboBox<String>(choiceShowHide);
            cbchoiceShowHide.setVisible(true);
            add(cbchoiceShowHide);
    }
}
我不确定我的思路是否正确


有谁能就如何实现我在这里的目标向我提供建议?(直到我对Java有了更多的了解,并为自己设定了更高、更终极的目标)。

如果您希望您的
JComboBox
更改
JTextField
的可见性,即在对其执行的某个操作上执行某个事件,即从组合框中选择一项(在本例中),您需要使用称为ActionListener的东西。 我不会深入讨论这个接口,而只是简单地说,这个接口包含一个公共抽象
actionPerformed(ActionEvent arg)
方法,该方法采用
ActionEvent
参数

考虑到你是初学者,你不需要知道这门课的所有细节。您需要知道的唯一一件事是,您需要使用
addActionListener(ActionListener arg)
对调用对象注册一个ActionListener,用于希望执行某些操作的组件(本例中为JComboBox)

公共类JTextFieldShowHideExample扩展JApplet实现ActionListener{

JComboBox<String> cbchoiceShowHide;
JTextField field;
public void init(){

        //set flow layout for the applet
        this.getContentPane().setLayout(new FlowLayout());

        //create new JTextField
        field = new JTextField("JTextField Show Hide Example", 20);
        field.setVisible(true);
        add(field);

        String[] choiceShowHide =  
            { "" + "Show","Hide"
            };
        cbchoiceShowHide = new JComboBox<String>(choiceShowHide);
        cbchoiceShowHide.setVisible(true);
        add(cbchoiceShowHide);
        cbchoiceShowHide.addActionListener(this);
}

@Override
public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(cbchoiceShowHide.getSelectedItem().toString().equalsIgnoreCase("show"))
        field.setVisible(true);
    else
        field.setVisible(false);
    }
}
JComboBox cbchoiceShowHide;
JTextField字段;
公共void init(){
//设置小程序的流布局
这个.getContentPane().setLayout(新的FlowLayout());
//创建新的JTextField
字段=新的JTextField(“JTextField显示隐藏示例”,20);
字段设置为可见(true);
添加(字段);
字符串[]choiceShowHide=
{“”+“显示”、“隐藏”
};
cbchoiceShowHide=新JComboBox(choiceShowHide);
cbchoiceShowHide.setVisible(true);
添加(cbchoiceShowHide);
cbchoiceShowHide.addActionListener(此);
}
@凌驾
已执行的公共无效操作(操作事件e){
//TODO自动生成的方法存根
如果(cbchoiceShowHide.getSelectedItem().toString().equalsIgnoreCase(“显示”))
字段设置为可见(true);
其他的
字段设置为可见(false);
}
}
在以前的代码中,您已经创建了
cbchoiceShowHide
字段
作为局部变量,因此您将无法在
init()
之外使用它,除非您将其声明为实例变量,这正是我在本例中所做的

为了你的理解,
cbchoiceShowHide.getSelectedItem().toString().equalsIgnoreCase(“显示”)
这是使代码工作的神奇的一行。
getSelectedItem()
将返回一个表示组合框中选择项的对象实例,我们使用著名的
toString()
将其转换为字符串,然后将其与字符串“Show”进行比较,并将字段的可见性设置为true


向上投票并选择答案(如果有帮助):-)

组合框上需要一个选择侦听器。我建议您看看oracle的javadocs for comboBox,它将引导您进入教程,非常感谢您的解释!这确实起到了作用。我向前走;了解更多:)都是d最好的-也有一些好的理由支持这个答案:-)我支持吗?(如果我没有弄错的话,向上的箭头是向上投票的箭头)。如果不这样做,我非常抱歉。我将重新阅读说明书,并投票表决你的答案!!你的声望至少应该是15,只有这样你的支持票才会公开,尽管如此:D
JComboBox<String> cbchoiceShowHide;
JTextField field;
public void init(){

        //set flow layout for the applet
        this.getContentPane().setLayout(new FlowLayout());

        //create new JTextField
        field = new JTextField("JTextField Show Hide Example", 20);
        field.setVisible(true);
        add(field);

        String[] choiceShowHide =  
            { "" + "Show","Hide"
            };
        cbchoiceShowHide = new JComboBox<String>(choiceShowHide);
        cbchoiceShowHide.setVisible(true);
        add(cbchoiceShowHide);
        cbchoiceShowHide.addActionListener(this);
}

@Override
public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(cbchoiceShowHide.getSelectedItem().toString().equalsIgnoreCase("show"))
        field.setVisible(true);
    else
        field.setVisible(false);
    }
}