게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[본삭금]자바 스윙 이벤트관련 질문
게시물ID : programmer_11800짧은주소 복사하기
작성자 : 생주
추천 : 0
조회수 : 227회
댓글수 : 0개
등록시간 : 2015/07/02 02:42:43
옵션
  • 본인삭제금지
안녕하세요 제가 지금 자바 독학을 하고있는데 자바라는 언어가 너무 재밌고 와닿아서

열심히 책을 보며 공부중인데 독학이라는게 하다보니 막히고 어디 도움을 요청할만한곳이 딱히 없어 주로이용하는 오유에 질문을하게되었습니다

자바에서 이벤트 처리쪽을 공부하고있는데 버튼을 클릭하면 색깔이 변하도록 만들고있습니다.

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();
}

}

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호