1

Jbuttons を作成しているタイトルのリストがあります。特定のボタンをクリックすると、そのテキストが表示されます。ネットで検索していくつか試してみましたが、クリックしたタイトルではなく、リストからランダムなタイトルが表示されます。どこが間違っているのか教えてください。どんな種類の助けも高く評価されます。ありがとう、

           for(String title:listOfTitles){
           button1.setText(title);
           button1.setBounds(20,50,100,25);
           button1.setBorderPainted(true);
           button1.setFocusPainted(true);
           button1.setContentAreaFilled(false);
           button1.setOpaque(false);
           button1.setBackground(Color.lightGray);
           button1.setBounds(5,i,100,100);
           button1.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextField3.setText(((button1) evt.getSource()).getText());
            }

         });
         jPanel3.add(button1);
         jPanel3.revalidate();
         jPanel3.repaint();
         i = i+15;
     }
4

1 に答える 1

4

通常、MouseListener を JButton に追加することは望ましくありません。ボタンのチュートリアルを完了した場合は、代わりに ActionListeners を使用する必要があることを確認したはずです。これを行う場合getActionCommand()、リスナーのメソッドに渡された ActionEvent オブジェクトを呼び出すと、actionPerformed(...)必要な文字列が取得されます。

つまり、

myButton.addActionListener(new ActionListener() {
   actionPerformed(ActionEvent evt) {
      System.out.println("Button's actionCommand: " + evt.getActionCommand());
   }
});

法的免責事項: このコードはコンパイルもテストもされておらず、コピー アンド ペーストのソリューションではなく、ActionListeners がどのように機能するかを理解するためのものであり、その概念をプログラムに適応させることができます。

また、その他の詳細については、Swing JButton チュートリアルを参照してください。

于 2012-04-22T17:15:53.243 に答える