2011-09-09 1 views
1

私はJToolbarButtonボタンを使用していますが、JButtonのようにクリックしたときにそのボタンを「押した」ようにしたいのですがどうすればいいですか? 助けてください!ありがとうございます。Swing JToolbarButtonを押す

+1

あなたが「JToolbarButton」によって何を意味しています(コアスイングには、このような獣が存在しない) – kleopatra

+0

私は、多くの場合、ラベルのみの小さな画像なしで表示可能な絵文字(アイコン)ボタン、小さなボタンを、意味します。 – Martin

答えて

2

コスティスの返信に記載されているとおり、おそらくJToggleButtonの後です。この例の2番目のツールバーのように、境界線の描画を抑制する必要がある場合もあります。

Toggle Bar

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

class ToggleBar { 

    public static JToggleButton getButton(
     Image selected, 
     Image unselected, 
     boolean decorated) { 

     JToggleButton b = new JToggleButton(); 
     b.setSelectedIcon(new ImageIcon(selected)); 
     b.setIcon(new ImageIcon(unselected)); 
     b.setBorderPainted(decorated); 

     return b; 
    } 

    public static Image getCircleImage(Color c) { 
     BufferedImage bi = new BufferedImage(
      32,32,BufferedImage.TYPE_INT_ARGB); 
     Graphics2D g = bi.createGraphics(); 

     g.setColor(c); 
     g.fillOval(0,0,32,32); 

     g.dispose(); 
     return bi; 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       Image red = getCircleImage(Color.RED); 
       Image green = getCircleImage(Color.GREEN); 

       JPanel p = new JPanel(new GridLayout(0,1)); 

       JToolBar tb1 = new JToolBar(); 
       for (int ii=0; ii<5; ii++) { 
        tb1.add(getButton(red, green, true)); 
       } 
       p.add(tb1); 

       JToolBar tb2 = new JToolBar(); 
       for (int ii=0; ii<5; ii++) { 
        tb2.add(getButton(red, green, false)); 
       } 
       p.add(tb2); 

       JOptionPane.showMessageDialog(null, p); 
      } 
     }); 
    } 
} 
1

Apache BatikにJToolbarButtonがあります。

あなたが探しているものはJToggleButtonですが、私には思われます。小さい画像を表示し、小さくするように調整することができます。

jToggleButton1.setIcon(new javax.swing.ImageIcon("image.png")); 
jToggleButton1.setSelectedIcon(new javax.swing.ImageIcon("selected_image.png")); 

ボタンをルックにするために、別のイメージをsetSelectedIconで追加します。

+0

私はそのラベルも押されたように見せたい。 – Martin

+0

ボタンのテキストを意味しますか? –