1
편집 : 프로그램을 시작하면 체스 판이 그려지고 단추가 작동합니다. 그러나 체스 판을 내가 프로그램을 실행할 때가 아니라 버튼을 누를 때만 그려야합니다. 어떻게해야합니까? 나는 그것을 할 것자바로 버튼 페인트를 만드는 방법은 무엇입니까?
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;
}
}
}
}
* "다음은 채울 공백이있는 코드입니다."* 시작되었습니다. 특정 * 질문을 할 수있을 때 우리에게 연락하십시오. –
나는 아무에게도 공백을 채울 것을 요구하지 않고있다. 이클립스는 그것없이 컴파일되지 않기 때문에 내가 MainField 클래스를 그리면 클래스 MaleFrame에서 드로잉을 할 JButton을 만들어야하는지 알고 싶습니다. 나는 그것을 Male 클래스에 넣을 것이다. 그러나 어떤 공간도 없다. 그래서 나는 그것을 어디에 둘 수 있었느냐? –
OK * "Java에서 버튼 페인트를 만드는 방법"*'actionPerformed (ActionEvent)'에서 사용자 정의 컴포넌트에 대해'repaint()'를 호출하십시오. –