안녕하세요 제가 지금 자바 독학을 하고있는데 자바라는 언어가 너무 재밌고 와닿아서
열심히 책을 보며 공부중인데 독학이라는게 하다보니 막히고 어디 도움을 요청할만한곳이 딱히 없어 주로이용하는 오유에 질문을하게되었습니다
자바에서 이벤트 처리쪽을 공부하고있는데 버튼을 클릭하면 색깔이 변하도록 만들고있습니다.
1번클릭하면 검은색 그리고 다시클릭하면 흰색 다시클릭하면 검은색이 되도록 짜고있는데
일단 성공은했는데 다른 버튼 클릭시 값이 다시 초기화 된다고해야할까요?(1번쨰 버튼을 1번클릭하면 검은색뜨고 2번쨰버튼에 클릭하면 검은색이 떠야하는데 흰색이뜸)
일단 스태틱변수로도 써보았으나 스태틱경우 값은 남아있는데 다른버튼 클릭시 그값이 남아있어 첫번째클릭시 흰색이 뜨는경우가 발생하여
이것을 해결하고 싶습니다.
--------------------------------------------------------------------------------------------------
package da;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.util.Random;
class MyFrame1 extends JFrame{
Random r=new Random();
int width=400;
int height=400;
int gamesizex=5;
int gamesizey=5;
static int selet=0;
public MyFrame1(){
Toolkit kit= Toolkit.getDefaultToolkit();
Dimension screensize=kit.getScreenSize();
setTitle("test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation((screensize.width-width)/2, (screensize.height-height)/2);
setSize(width, height);
setLayout(new GridLayout(gamesizex,gamesizey,2,2));
for(int i=0;i<gamesizex;i++)
{
for(int j=0;j<gamesizey;j++)
{
JButton btn=new JButton();
this.add(btn);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e){
// TODO Auto-generated method stub
if(e.getSource()==btn){
selet++;
btn.setBackground(Color.black);
if(selet%2==0){
btn.setBackground(Color.white);
}
}
}
});
}
}
setVisible(true);
}
}
public class MainFrame1 {
public static void main(String[]args){
MyFrame1 f=new MyFrame1();
}
}