2012-03-26 14 views
2

私はColorChooserパネルを持っていますが、私は自分のプログラムでJButtonをクリックするとどのように表示されるのですか? 編集: サイズ変更可能で、移動可能で閉じている新しいフレームに表示したいと思っています。JButtonをクリックしたときにJPanelを表示させるにはどうすればよいですか?

+0

詳細情報が必要です。どこから出ますか?別のパネルの後ろから同じ窓?ダイアログのポップアップ? –

+0

サイズ変更可能で、移動可能で閉じている新しいフレームに表示させたいです。 –

+0

どのようにしてColorChooserが表示されましたか?自分のパネルと同じことをしてください。 – Randy

答えて

1

あなたのJBu用のActionListenerを記述する必要がありますトン。このような

何か:

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 

/** 
* 
* @author roger 
*/ 
public class MyActListener extends JFrame implements ActionListener{ 

    public MyActListener(){ 
     super("My Action Listener"); 

     JButton myButton = new JButton("DisplayAnything"); 
     myButton.addActionListener(this); 
     this.add(myButton); 


     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     this.pack(); 
     this.setVisible(true);   
    } 

    public static void main(String[] args) { 
     // TODO code application logic here 
     MyActListener ma = new MyActListener(); 
    } 

    @Override 
public void actionPerformed(ActionEvent e) { // YOur code for your button here 
    if("DisplayAnything".equals(e.getActionCommand())){ 
     Color c = JColorChooser.showDialog(this, "Color Chooser", Color.BLACK); 
     JButton displayAnything = (JButton)e.getSource(); 
     displayAnything.setBackground(c); 
    } 
} 

How to write an ActionListenerJava tutorialsを見てみましょう。そこの本当に大きなインデックスを見て、一般的なjavaに関する基本的なチュートリアルを見てください。

+0

これがJButtonのアクションリスナーを作成する正しい方法であれば、さらなる読者からのフィードバックを得ることができますか?ボタンの数が増え始めると、ActionListenerを実装するクラスを作成する方が良いでしょうか? – Roger

+1

私は個人的には、あなたのコメントの最後の例のような匿名の内部クラスを使用することを好むし、そのクラスの呼び出しを行うことを好みます(これは、MyButton.addActionListener(this)そこからロジックを実装します。このようにして、アクションコマンドを定義する必要はなく、気づいたように、新しいボタンが追加されると、あなたのactionPerformedメソッドはかなり長くなります。あなたのすべての例は有効で、もちろん使用中です。 – mort

+0

ありがとう!さらにもう1つの質問ですが、ボタンを私が選んだ色で表示させるにはどうすればいいですか? –

2

あなたは、JavaのSwingのチュートリアルを見ることができます - ColorChooserDemo2: http://docs.oracle.com/javase/tutorial/uiswing/components/colorchooser.html#advancedexample

基本的には、JColorChooseがダイアログに表示することができます。このファイル選択をアクティブにするには、ボタンの http://docs.oracle.com/javase/6/docs/api/javax/swing/JColorChooser.html

Color newColor = JColorChooser.showDialog(
       ColorChooserDemo2.this, 
       "Choose Background Color", 
       banner.getBackground()); 

button.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e) { 
    //color is whatever the user choose 
     Color color = JColorChooser.showDialog(currentComponent, "Color Chooser", Color.WHITE); 

     JButton thisBtn = (JButton)e.getSource(); //or you can just use button if that's final or global 
     thisBtn.setBackground(color); 
    } 
}); 
+0

ありがとう:) JButtonからActionPerformedでどのように実装できますか? –

+0

ありがとう、ちょっとだけ質問がありますが、ボタンを選択した色にするにはどうしたらいいですか? –

関連する問題