2016-07-06 10 views
0

私はJcolorChooserのJavaスイングでカスタムColorChooserPanelを作成したいと思います。java custom colorChooserPanel

public class ColorPanel extends AbstractColorChooserPanel { 

    public void buildChooser() { 
     setLayout(new GridLayout(1, 3)); 
     makeAddButton("Red", Color.red); 
     makeAddButton("Green", Color.green); 
     makeAddButton("Blue", Color.blue); } 

     public void updateChooser() { 
     } 
     public String getDisplayName() { 
      return "MyChooserPanel"; } 

     public Icon getSmallDisplayIcon() { 
      return null; } 

     public Icon getLargeDisplayIcon() { 
      return null; } 

     private void makeAddButton(String name, Color color) { 
      JButton button = new JButton(name); 
      button.setBackground(color); 
      button.setAction(new AbstractAction() { 
       private static final long serialVersionUID = 1L; 

       public void actionPerformed(ActionEvent arg0) { 
        JButton button = (JButton) arg0.getSource(); 
        getColorSelectionModel().setSelectedColor(button.getBackground()); 

      }}); 
      add(button); } 
} 

3色のボタンが表示されますが、代わりに6ボタンが表示されます。誰かが私に何かを見せてもらうことができます。どうすれば下のパネルを削除できますか?

ColorPanel colorPanel = new ColorPanel(); 
colorPanel.buildChooser(); 
colorChooser = new JColorChooser(); 
colorChooser.addChooserPanel(colorPanel); 

http://i.stack.imgur.com/u1fag.png

別の質問:私は、見本のカラーパネルで、最近のペインを削除することができます。私はちょうどカラーパレットだけを見せたいだけです。私は下の写真の「最近の」部分を意味します。

http://i.stack.imgur.com/VfdDJ.png

+0

'buildChooser()'がどこに呼び出されているのかわかりますか?これは有益な答えに関連するかもしれません。 –

+0

私はそれが好きです(私の最後の編集された質問を参照してください) – ved

+0

私はかなりあなたの2番目の質問を理解していない、質問ごとに1つの問題を試してみてください –

答えて

0
ColorPanel colorPanel = new ColorPanel(); 
// colorPanel.buildChooser(); <-- remove this line 

あなたはJChooserPanelcolorPanelを追加すると、このメソッドが呼び出されます:

public void installChooserPanel(JColorChooser enclosingChooser) { 
    if (chooser != null) { 
     throw new RuntimeException ("This chooser panel is already installed"); 
    } 
    chooser = enclosingChooser; 
    chooser.addPropertyChangeListener("enabled", enabledListener); 
    setEnabled(chooser.isEnabled()); 
    buildChooser(); 
    updateChooser(); 
} 

それはすでに時に組み込まれているので、あなたがもう一度あなたのパネルを「構築」する必要はありません。 colorChooserに追加しました。

+0

私はこれを試してみましたが、そして2番目の質問のために私は別の写真を追加します。ありがとうございました。 – ved