2016-11-18 3 views
0

3つのボタンがあるウィンドウを表示するプログラムを作成します。各ボタンには、「赤」、「緑」、「青」などの名前が付いています。このウィンドウには、ラベルもあります。ラベルにはアイコンが含まれています。このアイコンは、最初は空のCompositeIconでなければなりません。ボタンを押すたびに、例のようにボタンの色で四角形が表示されます。「青色のボタンを押す - >青色の四角形がウィンドウに表示されます」 これまで私はこれを持っています。私は色の名前の3つのボタンがあります。私はそれが動作しないボタンのいずれかを押すたびに私は。私は何をする必要がありますか?色で四角いボタンを作るにはどうすればいいですか?

コード:

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class ActionTester{ 

    public static void main(String[] args){ 
      JFrame frame = new JFrame(); 
      final JTextField textField = new JTextField(); 

      JButton RedButton = new JButton("Red"); 

      RedButton.addActionListener(new ActionListener() { 
        @Override 
        public void actionPerformed(ActionEvent e) { 
          SquareIcon red = new SquareIcon(20,Color.RED); 
          CompositeIcon ci = new CompositeIcon(); 
          ci.addIcon(red); 
        } 
      }); 

      JButton GreenButton = new JButton("Green"); 

      GreenButton.addActionListener(new ActionListener() { 
        @Override 
        public void actionPerformed(ActionEvent e) { 
          SquareIcon green = new SquareIcon(20,Color.GREEN); 
          CompositeIcon ci = new CompositeIcon(); 
          ci.addIcon(green); 
        } 
      }); 

      JButton BlueButton = new JButton("Blue"); 

      BlueButton.addActionListener(new ActionListener() { 
        @Override 
        public void actionPerformed(ActionEvent e) { 
          SquareIcon blue = new SquareIcon(20,Color.BLUE); 
          CompositeIcon ci = new CompositeIcon(); 
          ci.addIcon(blue); 
        } 
      }); 

      frame.setLayout(new FlowLayout()); 
      frame.add(RedButton); 
      frame.add(GreenButton); 
      frame.add(BlueButton); 
      frame.add(textField); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      frame.pack(); 
      frame.setVisible(true); 
    } 
} 
+0

ねえ、私はその同じ運動かどうかわからないんだけど、この上の外観を持っていけないので、いくつかのIDEが自動にあなたの輸入を並べ替えることができます。http:/ /stackoverflow.com/questions/19881700/buttons-and-icons-within-a-label-squareicon。それはあなたの仕事に非常によく似ています。 – endkugelfang

答えて

2

を表示されません、それは

に降りてきた私のプロジェクトで

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

などの輸入品の使用は避けてください。

import java.awt.Color; 
import java.awt.FlowLayout; 
import java.awt.Frame; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 

あなたが最も一般的な輸入品を気にする必要はもう

+0

私の質問にお答えいただきありがとうございます。赤い四角形を複数の例のようにしたい場合は、赤いボタンを押すたびに赤い四角形が並んで表示されます。それ、どうやったら出来るの? – MrDavidNhan10

+0

Nevermind私はそれを得たと思う。とにかくありがとうございました。 – MrDavidNhan10

+2

一部のルックアンドフィールではボタンの背景色がサポートされていません。より信頼性の高いアプローチでは、[この回答](http://stackoverflow.com/a/13943044/418556)のように 'ColoredIcon'を使用してください。それはPLAFとシステム全体で機能します。 (答えはアイコンをラベルに追加しますが、ボタンもアイコンを受け入れます) –

1

ボタン自体は動作しますが、あなたのフレームにcompositeiconを追加することはありません。

final JPanel sqr = new JPanel(); 

JButton RedButton = new JButton("Red"); 

RedButton.addActionListener(new ActionListener() 
{ 
    @Override 
    public void actionPerformed(ActionEvent e) 
    { 
    sqr.setBackground(Color.RED); 
    } 
}); 

、別のノートでフレーム

sqrを追加することを忘れていけない:したがって、何もあなたがする必要があるすべてはあなたのようActionListenerに変更1つのスクエアオブジェクトを作成することです

+0

ありがとうございました。 – MrDavidNhan10

関連する問題