0

j テキスト領域での選択に応答してカスタム テキストを追加しようとしましたが、引数 "**.setText("");" 私の場合は機能しません:(助けてください^_^

PS

私はJavaが初めてで、ワームが何であるかを本当に知りませんでしたが、変数「get」で何かをしなければならないと思います。これは、テキスト領域のテキストとして使用される変数です

    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);
        }
    };    

}
4

1 に答える 1

1

あなたのクラスには get と呼ばれる JTextArea メンバーがあると仮定しています。ただし、ローカル スコープはメンバーをオーバーライドしています。

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

これは、クラス メンバーへの割り当てではなく、同じローカル スコープの変数への 2 つの割り当てです。上記の最初の行を削除してみてください。

于 2013-07-05T15:41:40.860 に答える