2013-01-15 9 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中的按钮,所以我真的不能告诉你如何完全建立起来,但我希望这可以帮助你至少在一个位做你想做的事。