2012-04-22 26 views
1

私はJbuttonsを作っているタイトルのリストを持っています。特定のボタンをクリックするとそのテキストが表示されます。ネットで検索して試してみましたが、ランダムなタイトルをリストから出していますが、クリックしたものではありません。私が間違っている場所を教えてください。どのような助けも高く評価されます。ありがとう、クリックした特定のJbuttonの取得方法を教えてください。

  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; 
    } 
+1

*「タイトルリストがあります」*適切なコンポーネントはおそらく['JList'](http://docs.oracle.com/javase/7/docs/api/javax/swing/)です。 JList.html)。 –

答えて

4

一般に、JButtonにMouseListenerを追加したくありません。ボタンのチュートリアルを終えてしまった場合は、代わりにActionListenersを使用する必要があります。これを行う場合は、リスナーのactionPerformed(...)メソッドに渡されたActionEventオブジェクトのgetActionCommand()を呼び出して、必要なStringを取得します。

すなわち、

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

免責事項:このコードはコンパイルもテストされ、コピー&ペースト解決するのではなく、あなたにActionListenerには、どのように動作するかのアイデアを与えるためのものではありませんので、あなたされていませんあなたのプログラムにコンセプトを適応させることができます。

また、お知りになる必要がある残りの部分についてはSwing JButton tutorialをご覧ください。

+0

私はjavaに新しいので、あなたに私にcode.thanksを与えていただければ大いに感謝します。 – user1276381

+0

@ user1276381:編集とリンクを参照してください。 –

+0

私はこれを試して、unsupprted例外が現れ、ランダムなタイトルが生成されます:button1.setActionCommand(button1.getText()); button1.addActionListener(新しいのActionListener(){ @Override ます。public void actionPerformedの(のActionEvent e)の{ 文字列のAC = e.getActionCommand(); System.out.printlnは ( "ボタンのアクションコマンド:" + AC); 新しいUnsupportedOperationExceptionをスローする(「まだサポートされていません。」); } }); – user1276381