2013-01-15 11 views
1

編輯: 當我啓動程序時,棋盤會按照它的設想和按鈕的效果進行繪製。但是我只想在按下按鈕時繪製棋盤,而不是在運行程序時繪製。我怎樣才能做到這一點 ?如何在Java中進行按鈕繪製?

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

public class Male extends JFrame implements ActionListener {  
JFrame frame; 
JPanel DrawPanel; 
JButton button; 


public void Male() { 
frame = new JFrame(); 
button = new JButton("MALE"); 
button.addActionListener(this); 

MyDrawPanel DrawPanel = new MyDrawPanel(); 


frame.getContentPane().add(BorderLayout.SOUTH, button); 
frame.getContentPane().add(BorderLayout.CENTER, DrawPanel); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setSize(500,500); 
frame.setVisible(true); 

} 


public static void main(String[] args) { 
    Male gui = new Male(); 
    gui.Male(); 

} 
public void actionPerformed(ActionEvent event) { 
    frame.repaint(); 

} 
} 

class MyDrawPanel extends JPanel {  

public void paintComponent(Graphics g) { 
    g.setColor(Color.BLACK); 
    setBackground(Color.WHITE); 
    int x=0; 
    int y=0; 

    for (int i=0; i<32; i++){ 
    g.fillRect(x, y, 50, 50); 
    x = x + 100; 

    if (x == 400){ 
    x = 50; 
    y = y + 50; 
    }else if (x == 450){ 
    x = 0; 
    y = y + 50; 
    } 
    } 

} 
} 
+3

*「這裏是空白填充的代碼:」*所以開始吧。回到我們,當你可以問一個*特定*問題。 –

+0

我不是要求任何人爲我填充空白。我想知道是否應該讓JButton在類MaleFrame中完成繪圖,並且我應該在哪裏放置Main方法,因爲如果沒有它,eclipse將無法編譯。我會把它放在班級男性,但沒有空間,我可以放在哪裏? –

+0

OK *「如何在Java中創建按鈕畫?」*在'actionPerformed(ActionEvent)'上,調用自定義組件上的'repaint()'。 –

回答

0

我會做的方式是把那個提請董事會在if語句中的位,使被點擊按鈕時,設置爲true的布爾變量。

例如:

if(hasBeenPressed){ 
    // add drawing code here 
} 

我不是很熟悉,在Java中的按鈕,所以我真的不能告訴你如何完全建立起來,但我希望這可以幫助你至少在一個位做你想做的事。