java - 我需要将监听器添加到复选框,并且选择的更改显示在 textArea 中

标签 java swing jtextarea

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class JDorm implements ItemListener{

public static void main(String[] args){

    JCheckBox privateroom = new JCheckBox("Private Room",false);
    JCheckBox interweb = new JCheckBox("Internet Connection",false);
    JCheckBox cable = new JCheckBox("Cable TV connection",false);
    JCheckBox fridg = new JCheckBox("Refridgerator",false);
    JCheckBox microwave = new JCheckBox("Microwave",false);
    JCheckBox soon = new JCheckBox(",and so on",false);
    JLabel greet = new JLabel("Please choose ammenities");
    String sel = "Your selected options";

    JTextArea textBox = new JTextArea(sel,0,1);
    cable.addItemListener();

    JFrame dormFrame = new JFrame("Dorm Options");// creates frame with title
    final int WIDTH = 250;
    final int HEIGHT = 500;
    dormFrame.setSize(WIDTH, HEIGHT);// sets the size of frame in pixels
    dormFrame.setVisible(true);// note: default visibility is false
    dormFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    dormFrame.setLayout(new FlowLayout());
    dormFrame.add(greet);
    dormFrame.add(microwave);
    dormFrame.add(fridg);
    dormFrame.add(cable);
    dormFrame.add(interweb);
    dormFrame.add(privateroom);
    dormFrame.add(soon);
    dormFrame.add(textBox);
}
public void itemStateChanged(ItemEvent event){
    Object source = event.getSource();
    int select = event.getStateChange();
}

}

这是我目前所拥有的,我知道我需要听众,以及在选中和取消选中选择时在框中显示的消息。 我需要 if 语句来进行更改吗?

最佳答案

创建一个可以添加到所有复选框的通用监听器。像这样的东西:

ItemListener listener = new ItemListener()
{
    public void itemStateChanged(ItemEvent event)
    {
        JCheckBox checkBox = (JCheckBox)event.getSource();
        textBox.setText( checkBox.getText() );
    }
};

然后将监听器添加到每个复选框:

privateRoom.addItemListener( listener );
interweb.addItemListener( listener );

关于java - 我需要将监听器添加到复选框,并且选择的更改显示在 textArea 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16000117/

相关文章:

java - 添加实现而不用 Java 重新编译?

Mac OS Lion 上使用 PowerPC JavaApplicationStub 的 Java 应用程序

java - JFrame 调用多个并发线程来更新调用者 JFrame 中的 JProgressBar

java - 最终局部变量无法赋值

java - 在不同的类文件中将 JScrollPane 设置为 JTextArea

java - JTextArea 中的国际化字符串

java - 作为字符串的函数名称

java - 我需要添加 log4j 文件才能在现有文件达到最大大小限制后继续工作

java - JTable 行选择和数据检索

java - 如何自动调整 JTextArea 中的字体大小以填充分配的所有空间?