기록실
채팅 2
게임 0
유물

자바 질문드립니다 [6]

Minerals : 1,045 / Level : 이병 이병
2022-06-06 21:29:33 (4년 전) / READ : 1047

가상 키보드 구현하려 하는데 GUI로 키는 대충 만들었습니다.  함수로 btn[i]만들었는데 오버라이드 할 때  cannot be resolved to a variable가 뜨네요 오버라이드 하려면 btn1, btn2처럼이름을 따로 지정 해줘야 할까요

import java.awt.*;

import javax.swing.*;

import java.awt.event.ActionEvent;// 이벤트

import java.awt.event.ActionListener;// 이벤트 리스너 


  class MyGUI extends JFrame implements ActionListener{

MyGUI(){

// 프레임 생성

        JFrame frm = new JFrame("화상 키보드");

 

        // 프레임 크기 설정

        frm.setSize(900, 400);

 

        // 프레임을 화면 가운데에 배치

        frm.setLocationRelativeTo(null);

 

        // 프레임을 닫았을 때 메모리에서 제거되도록 설정

        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

        // 레이아웃 설정

        frm.getContentPane().setLayout(null);

        //텍스트 필드 생성

        JTextField textfield = new JTextField(30);

        textfield.setBounds(400, 5, 100, 30 );

        frm.add(textfield);

        // 버튼 생성

        int a=55;

        JButton[] btn = new JButton[10];

        for(int i = 1; i <=9; i++) {

        

        

       

        btn[i] = new JButton("ESC");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 8));

        btn[i].setBounds(5, 5, 50, 30);

        frm.getContentPane().add(btn[i]);        

        

        btn[i] = new JButton("~");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(5, 50, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("1");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(60, 50, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("2");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(115, 50, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("3");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(170, 50, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("4");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(225, 50, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("5");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(280, 50, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("6");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(335, 50, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("7");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(390, 50, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("8");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(445, 50, 50, 40);       

        frm.getContentPane().add(btn[i]);


        btn[i] = new JButton("9");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(500, 50, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("0");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(555, 50, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        //2 번째 열

        btn[i] = new JButton("ㅂ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(65, 100, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅈ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(120, 100, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㄷ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(175, 100, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㄷ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(175, 100, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㄱ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(230, 100, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅅ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(285, 100, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅛ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(395, 100, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅕ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(450, 100, 50, 40);       

        frm.getContentPane().add(btn[i]);


        btn[i] = new JButton("ㅑ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(505, 100, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅐ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(560, 100, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅔ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(615, 100, 50, 40);       

        frm.getContentPane().add(btn[i]);

        

        //3번째 열

        btn[i] = new JButton("ㅁ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(70, 150, 50, 40);  

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㄴ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(70 +a, 150, 50, 40); 

        frm.getContentPane().add(btn[i]);


        btn[i] = new JButton("ㅇ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(70 + 2*a, 150, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㄹ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(70 + 3*a, 150, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅎ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(70 + 4*a, 150, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅗ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(70 + 6*a, 150, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅓ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(70 + 7*a, 150, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅏ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(70 + 8*a, 150, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅣ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(70 + 9*a, 150, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        //4번째열 

        

        btn[i] = new JButton("ㅋ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(85, 200, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅌ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(85+a, 200, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅊ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(85+a*2, 200, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅍ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(85+a*3, 200, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅠ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(85+a*5, 200, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅜ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(85+a*6, 200, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("ㅡ");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(85+a*7, 200, 50, 40); 

        frm.getContentPane().add(btn[i]);

        

        btn[i] = new JButton("Space Bar");

        btn[i].setFont(new Font("맑은고딕", Font.BOLD, 10));

        btn[i].setBounds(85+a*3, 250, 200, 40); 

        frm.getContentPane().add(btn[i]); 

        }

 

       

        

        

   

        // 프레임이 보이도록 설정

        frm.setVisible(true);

 

}


@Override


public void actionPerformed(ActionEvent e) {


btn[i].setText("10");

}

}

public class Keyboard111 {

        public static void main(String[] args) {

        new MyGUI();

        

    }

    

    }

    

 



신고
  • 댓글이 6 개 달렸습니다.
  • For문 안에 함수 정의되어있어서 그런가?
    코드보기 넘 불편함
  • 코드가 잘못 복붙된거같은데
    actionPerformed 이 함수가 중간에 갑자기튀어나오네요.
  • 4년 전
    @신입개발자2년차바꿨는데 한번 더 봐주실 수 있나요
  • 4년 전
    @신입개발자2년차오버라이드 부분이 안되네요
    the method of type must override or implement a supertype method라고 하는데  상위 클래스인 Shape에 오버라이딩 하는 메소드 getArea의 선언 및 정의가 없기 때문입니다. 구글링 해보니 이렇게 뜨네요 
  • @잼민19자세히 보니 코드가조금 난해하네요. for문이 왜 존재하는지 잘 이해가 안가고,
    btn[i]에 new 생성자로 매번 재할당해서 패널에 넣어주는거같은데, 정작 for문 빼고 돌려도 잘 실행은 되네요.
    어떤 비즈니스로직을 구현하는지 의도는 잘 모르겠어서 단순하게만 말씀드리면

    btn 변수를 클래스 멤버변수로 빼야 오버라이딩 메소드에서 btn 변수를 사용할 수 있습니다.
  • 4년 전
    @신입개발자2년차도와주셔서 감사합니다 갈아 엎어야겠네요
글목록 이전글 다음글
글쓰기


공부 인증 한 시간당 10만 미네랄 드려요. (1)알콜솜 25.12.12추천 1
프로필에 본인인증 여부를 표시하도록 개선 되었습니다. YGOSU2 25.12.26-
[인증] 야 미생에서 박과장이 횡령한 금액이 대충 연 얼마정도냐? (2)유승준91622.06.06추천 1
[질문] 코딩 고수님 있으심? (5)UnToucAble120722.06.06-
아 요즘 공부가 안됨 ㅋㅋㅋㅋ (5)인자약 헬정자117322.06.05-
[질문] 아바쿠스 프로그램  (4)이태석101522.06.05-
[질문] 의사양반들어와보삼 (12)루나버린니범인충146022.06.04-
[질문] 유체역학 고수님들 제발 풀어주세요 2시간지났습니다. (2) Gkgktmxh126522.06.04추천 1
[질문] 예체능충인데 대학 졸업하고 아예 진로를 바꾸고싶음 (6)삶은 고구마다.93622.06.04-
[인증] 42점 (4) 돌아온 강호링♡145022.06.04추천 5
요새 수능 어려워졌네... (6)설기현145622.06.04-
과외생 구합니다. (4)와이사랑66136222.06.04추천 1
[정보] 혹시 인터넷에 유망 자격증 탑텐 같은거 신빙성있냐???별빛의달빛의워뇽81422.06.03-
공대 3학년인데 원래 이렇게 바쁘냐? (12)(ง'̀-'́)ง198122.06.03-
컴활 질문좀 (7)열차출발칙칙폭폭129022.06.03-
혹시 나말고 일본 유학중인 사람 여기있냐?. (4)반대로말하는사람100722.06.03-
[질문] 전기쪽 기사 자격증 취득질문 (12)진지보이138622.06.03-
[질문] 인강  집에서  못듣겠다 (4)비단원숭이132922.06.02-
[질문] 소방설비기사 공부법 좀 알려주세요 (3)알았어빵사올게109222.06.02-
지방직 (3)미꾸라쥐448122.06.02추천 7
나이들어서 공부하려다보니 집중이 잘안되네 (11)도우너4174322.06.01-
[칼럼] 내가 존잘인데 갑자기 외모를 안꾸미고 다니는 이유 (3)배드산타173022.06.01추천 1
[질문] 직장다니며 공부 할생각 방선택좀 도와줘라 (5)해남이다요다야112422.06.01추천 1
[질문] 공기업 준비하고 있는데 중소기업 지원해볼지 고민됨 (14)퍼펙트가이150222.06.01추천 1
[질문] 중소기업에서 대기업으로 이직이 가능함? (23)퍼펙트가이238922.06.01-
[칼럼] 요즘 학원과외강사들 ㅋㅋ (12)배드산타222122.06.01추천 2
[정보] 내가 독서실 다닐때 중고딩들 평정했던방법 ㅋㅋ (3)배드산타137222.06.01-
글쓰기