2012-04-26 11 views
0

ボタンにカウンタを追加したい設定したカウント数に達すると、コンピュータ上のファイルを開くように各カウンタを設定する方法も学びたいGUIにカウンタを追加する方法

package layout; 

import java.awt.Component; 
import java.awt.Container; 
import javax.swing.BoxLayout; 
import javax.swing.JButton; 
import javax.swing.JFrame; 

public class BoxLayoutDemo { 
    public static void addComponentsToPane(Container pane) { 
     pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS)); 
    addAButton("Section 1", pane); 
    addAButton("Section 2", pane); 
    addAButton("Section 3", pane); 
    addAButton("Section 4", pane); 
    addAButton("Section 5", pane); 
    addAButton("Section 6", pane); 
    addAButton("Section 7", pane); 
    addAButton("Section 8", pane); 
    addAButton("Section 9", pane); 
} 

private static void addAButton(String text, Container container) { 
    JButton button = new JButton(text); 
    button.setAlignmentX(Component.CENTER_ALIGNMENT); 
    container.add(button); 
} 


private static void createAndShowGUI() { 

    JFrame frame = new JFrame("Counter"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


    addComponentsToPane(frame.getContentPane()); 

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

public static void main(String[] args) { 
    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      createAndShowGUI(); 
     } 
    }); 
} 
} 
` 

私がnoobですので、これを行う方法を見つけるのに数週間かかりました。

あなたのコードで
+2

ようこそ。あなたの具体的な質問は何ですか? * "それは私が設定したカウント数に達すると.." *何?返信する精神的な人々とのフォーラムを見つけるまでは、できるだけ友だちにあなたの投稿を注意深く読んで、投稿する前にそれが意味をなさないことを確認することをお勧めします。 –

+0

BTW 'addAButton("セクション1 "区画); .. addAButton( "Section 9"、pane); 'ループをマスターする前にGUIプログラミングを行うのは、奇妙なことです。それは土台や構造物がない家に排水溝を塗ってみるようなものです。 –

+0

申し訳ありませんが、私はすべての準備ができている6つの.exeファイルの1つを開きますカウント番号に達すると意味します。 – user1359327

答えて

0

、あなたはコンテナにボタンを追加したが、あなたはそのボタンに任意のリスナーを追加していない - それは、それをクリックして任意のアクションを実行しません...

private static void addAButton(String text, Container container) { 
    JButton button = new JButton(text); 
    button.setAlignmentX(Component.CENTER_ALIGNMENT); 
    container.add(button); 
} 

そのため、ボタンにActionListenerを追加し、カウンタをインクリメントさせる必要があります。アクションリスナーでは、カウンターを追加できます。

新しいコードは次のようなものになります:
1)getNumClicks():この例では

private static void addAButton(String text, Container container) { 
    JButton button = new JButton(text); 
    button.setAlignmentX(Component.CENTER_ALIGNMENT); 
    button.addActionListener(new ButtonListener()); 
    container.add(button); 
} 

class ButtonListener implements ActionListener { 
    int numClicks; 
    static int buttonClicks = 0; 
    ButtonListener() { 
     numClicks = 0; 
    } 
    public void actionPerformed(ActionEvent e) { 
     buttonClicks++; 
     numClicks++; 
     // do some action 
    } 
    public int getNumClicks() { return numClicks; } 
    static public int getButtonClicks() { return buttonClicks; } 
} 

を、私は2つのメソッドを追加しましたので、(このButtonListenerインスタンスにクリック数を取得しますあなたは各ボタンに新しいButtonListenerを追加する限り、これは各ボタンに対して一意になります)
2)getButtonClicks():すべてのインスタンス

良い方法渡ってクリック数を取得し、作成するためのJButtonを拡張するだろう独自のカスタムボタンを追加することができますメソッドをButtonListenerではなくボタン自体に追加します。

0

ボタンを押した回数をカウントする場合は、ActionListenerが必要です。私は、構文エラーがある私自身がとても残念場合は、うまくいけば、これはあなたを助けるとあなたのプログラミング能力を拡大することをコンパイルhaventは

public class IListen implements ActionListener 
{ 
    int hits = 0; 
    public IListen() 
    { 
     JFrame frame = new JFrame("Title"); 
     JPanel panel = new JPanel(); 
     JButton button = new JButton("hello!"); 
     button.addActionListener(this); 
     panel.add(button); 
     frame.add(panel); 
     frame.setSize(200,200); 
     frame.setVisible(true); 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) 
    { 
     JButton source = e.getSource(); 
     if(source == button) 
      hits++; 

     System.out.println("you hit my button "+hits+" times!"); 
    } 

    public static void main(String args[]) 
    { 
     new IListen(); 
    } 
} 

:ここでは、そのような例があります。

0

あなたが望むことをするために知る必要があるものはすべてHEREです。多くのことをするには数週間かかりましたが、チュートリアルを徹底的に読むことは非常に有益です。

+0

ありがとう、私は読書を続けます – user1359327

関連する問題