如何将文本应用于文本区域

时间:2013-07-05 15:34:44

标签: java swing drop-down-menu jtextarea apply

我尝试添加自定义文本作为响应j文本区域中的选择但参数“**。setText(”“);”对我不起作用:(请帮助我^ _ ^

PS

我是java的新手,我真的不知道什么是蠕虫,但我认为它必须做一些变量“get”。这是变量whitch应该用作文本区域中的文本

    public static void main(String[] args)
    {
        Chat frame = new Chat("ChatHelp");
        frame.setVisible(true);
        frame.setResizable(true);
        frame.getContentPane().setBackground(Color.BLACK);
    }

    public Chat(String title) throws HeadlessException
    {   
        super(title);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(true);
        setSize (600, 300);
        setJMenuBar(createMenuBar());
        //basic
        Container cont = getContentPane();
        cont.setLayout(new BorderLayout());
        cont.setBackground(Color.BLACK);
        //eingabefelder         
        //greeting
        JComboBox mes = new JComboBox(new String[] {"*greetings*", "hi", "wie gehts", "hey", "morgen", "abend"});
        JPanel pan = new JPanel(new BorderLayout());
        pan.setBackground(Color.BLACK);
        cont.add(pan, BorderLayout.WEST);
        pan.add(mes, BorderLayout.NORTH);
        mes.addItemListener(message);

        //TextField get = new TextField("**enter the message you got here**", 20);
        //get.setEditable(true);
        //cont.add(get, BorderLayout.NORTH);

        JTextArea get = new JTextArea();
        get = new JTextArea("**NO MATCH FOUND**", 20, 50);
        get.setEditable(false);
        cont.add(get, BorderLayout.CENTER);          
    }       
    //input listener        
    private ItemListener message = new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent mes) {
            if(mes.getStateChange() == ItemEvent.SELECTED) {
                Object item = mes.getItem();
                if("hi".equals(item)) {
                    get.setForeground(Color.RED);
                } else if("wie gehts".equals(item)) {
                    get.setText("HI");
                } else if("hey".equals(item)) {
                    get.setText("HI");
                } else if("morgen".equals(item)) {
                    get.setText("HI");
                } else {
                    get.setText("HI");
                }                           
            }
        }};     

    //menu
    private  JMenuBar createMenuBar()
    {

        JMenuBar menu = new JMenuBar();
        menu.setBackground(Color.WHITE);

        JMenu file = new JMenu("File");
        menu.add(file);

        JMenuItem exit = new JMenuItem("exit");
        file.add(exit);
            exit.setAction(actionExit);
        return menu;
    }

    private AbstractAction actionExit = new AbstractAction("exit") {

        public void actionPerformed(ActionEvent arg0) {
            System.exit(0);
        }
    };    

}

1 个答案:

答案 0 :(得分:1)

我假设你的类有一个名为get的JTextArea成员。但是,您的本地范围覆盖了成员:

JTextArea get = new JTextArea();
get = new JTextArea("**NO MATCH FOUND**", 20, 50);

这只是对同一个本地范围变量的两个赋值,而不是赋给类成员。尝试删除上面的第一行。