기록실
채팅 1
게임 0
유물

자바 질문드립니다 [6]

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

가상 키보드 구현하려 하는데 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-
헤헤 코레일 면접 붙었다... (74) sjin1450822.06.10추천 38
현우진은퇴한다는데 (11)휴지끈짧아욥276822.06.10-
너넨 인생 목표같은거 있냐? (2)새우탕탕79222.06.10-
[칼럼] 대학을 갈거면 서울대를 가고, 면허를 딸거면 1종을 따라 (16)돌아온 강호링♡103622.06.10추천 5
1종보통 합격했다ㅠ (9)골랑골랑81822.06.10추천 1
지방직 일주일미꾸라쥐74722.06.10-
운전면허 1종보통 (15)쿠루루쾅쾅113922.06.10추천 1
[정보] 전기쌍기사 공부시 전기수학은 중요함??? 난이도는 어떻구 어떻게 쓰임??? (62)별빛의달빛의워뇽490822.06.09추천 7
[질문] 설문 과제 좀 도와주세요 (3)참치뿡73622.06.09-
나 기능 5번 떨어짐 (현 27살 BMW 5시리즈 오우너) (12)3대190195522.06.09추천 1
[질문] 면접전 고민 질문좀요 (10)포보이120822.06.08-
프로젝트 오늘 학교에서 발표했는데 제일 잘했다 칭찬 받았다 ㅁㅌㅊ ? (4)강덕구=주차80122.06.08-
기술사 따고싶당 (3)로이 킴116722.06.08-
기능 3번 떨어졌다 (28)스캇맨181722.06.07추천 1
[질문] HSK5급 219점, 4급 261점, 3급 291점이면 (6)韩勇民97822.06.07-
[질문] 가스기사 따면 일할 곳 많앙? (3)해남이다요다야129122.06.07-
[질문] 지텔프 듣기 파트 원래 이렇게 어려움?재벌집아들87222.06.07추천 1
나도 코인으로 10억 번사람이 될것임  (2)콜라의왕펩시144522.06.07-
[질문] 9급 vs 시설관리공단 공겹 (12)해남이다요다야190822.06.06-
[질문] 자바 질문드립니다 (6) 잼민19104322.06.06-
[질문] (CS)Window 64비트 운영체제 질문 (14)불알심리학과96822.06.06-
[질문] 뉴턴의 만유인력의 법칙 아인슈타인의 상대성 이론 질문 (11)오랜만에옴79722.06.06-
[질문] 질량이 있으면 무조건 중력이 생기는거죠? (15)오랜만에옴86022.06.06추천 1
[정보] 2022년 전국 특목고 진학실적 및 서울대 등록/합격 진학실적 분석가99722.06.06-
요즘 의대가는거 어렵다고 징징되면 안됨 (16)Winsor205222.06.06추천 3
글쓰기