2012-04-01 10 views
0

私のコードを見てください。欲しいのはうまくいきますが、唯一の問題は現在のボタンの反対側に別のボタンを追加したいということです。私はそうすることができません私の体は私を助けてください。私のコード全体は完成しましたが、2番目のボタンを追加できません

それは間違って行くを開始どこで
import java.awt.event.*; 
import javax.swing.*; 

public class Example2 extends JFrame { 

public Example2() { 
     initUI(); 
    } 

public final void initUI() { 
     JPanel panel = new JPanel(); 
     getContentPane().add(panel); 
     panel.setLayout(null); 
     panel.setToolTipText("A Panel container"); 

     JButton button = new JButton("Even"); 
     button.setBounds(100, 60, 100, 30); 
     button.setToolTipText("A button component"); 

     JButton button2 = new JButton("Odd"); 
     button2.setBounds(100, 60, 100, 30); 
     button2.setToolTipText("A button component"); 

     //Add action listener to button 
       button.addActionListener(new ActionListener() { 
        public void actionPerformed(ActionEvent e) 
        { 
         //Execute when button is pressed 
         System .out.println("You clicked the button"); 
         int sum=0; 
           for(int i=1;i<=100;i++){ 
            if(i%2==0){ 
             System.out.println(i); 
             sum+=i; 
            } 
           } 
     System.out.println("Sum of even numbers: "+sum); 
        } 
     }); 

     panel.add(button); 
     panel.add(button2); 

     setTitle("Tooltip"); 
     setSize(500, 400); 
     setLocationRelativeTo(null); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 

    } 
    public static void main(String[] args) { 
       Example2 ex = new Example2(); 
       ex.setVisible(true); 
    } 
} 
+0

可能重複(http://stackoverflow.com/questions/9961713/display-another-button-and-print-even-numbers-when [別のボタン及び印刷ボタンを押しても数字を表示します] -Button-pressed) – Robin

答えて

7
panel.setLayout(null); 

  1. レイアウトを使用します。詳細はLaying Out Components Within a Container & Effective Layout Management: Short Courseを参照してください。
  2. 使用:
    • 適切なレイアウト。
    • おそらくnested inside one another
    • 空白のための適切なレイアウトパディングとコンポーネントボーダー/インセット。余談として

... 
    button.setBounds(100, 60, 100, 30); 
    button.setToolTipText("A button component"); 

    JButton button2 = new JButton("Odd"); 
    button2.setBounds(100, 60, 100, 30); 
    ... 

2つのボタンの境界が同じであることに気付きましたか?あなたは同じ場所に同じサイズの2つのコンポーネントを置くと、と思いますか?

+0

私はそれをすることができません – KennEthel

+1

@ user1054393役に立つリンクについては、私の答えを参照してください。 – COD3BOY

+0

2つの別々の「一行修正」がfkrによって提供されましたが、@Sanjay&meの回答のリンクも参照してください。 –

3

panel.setLayout(null)を必要なレイアウトに変更する必要があります。たとえば:

panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); 

または

panel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER)); 
+0

良い答え。 +1 –

3

アンドリュー・トンプソン+1、ここで

はいくつかの便利なリンクです:

  1. A Visual Guide to Layout Managers
  2. Using Layout Managers
  3. Adding space between components
+0

最後の方が良い答えでしたが、空白、レイアウトパディングを追加するための1つの手法が欠けていました。例えば。 '新しいGridLayout(0,3,10,10); // Use 10px padding'もう一度投票することができないので、私はちょうどこれを投票します。 BTW - コメントのリンクをありがとう、私はそこに編集を開いていなければならないことが分かっていた。 ;) –

関連する問題