기록실
채팅 2
게임 0
유물

자바 질문드립니다 [6]

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

가상 키보드 구현하려 하는데 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-
[12/30개강 - 자부담금 없는 마지막 국비교육] 개발자 / 쇼핑몰&마케팅 과정 아이티윌부산26025.12.24-
다들 무슨 공부해요 (2)ethemon11825.12.23추천 2
하루종일 공부해야 8시간이구나 (1)재미있는토스12825.12.20추천 1
공부재밌다재미있는토스8925.12.20추천 1
[인증] 오늘 공부 단 2시간.. (2) 알콜솜14325.12.20추천 1
[인증] 아침공부완료 (1)재미있는토스10525.12.19추천 1
님들 공부하는 중? (1)재미있는토스10625.12.17추천 1
그 뭐지 중국어는 번체씀 간체씀??? (2)별볼일없는X10825.12.16추천 1
[자부담금 없는 마지막 전액국비교육] 개발자 / 쇼핑몰&마케팅 과정 아이티윌부산9725.12.16-
기능장이 기사자격증보다 위임? (2)RocketLab13525.12.16추천 1
HSK 있는 사람 있음?타나타노트10425.12.15추천 1
[포커]기회가 된다면 포커 한번 배우고싶네요.. 제대로 (1)김효원11825.12.13추천 1
남는게 없다고 생각드는 공부 (6) 알콜솜13025.12.12-
수학은 진짜 왜케 어려울까요 (1)재미있는토스16025.12.12추천 1
🐧 캐드 학원 등록했습니다.. 🐧 (2) 암퀴24225.12.12추천 3
공부 인증 한 시간당 10만 미네랄 드려요. (1)알콜솜15225.12.12추천 1
단기기억을 장기기억으로! (2)알콜솜15525.12.12추천 1
사람의 이해 및 암기능력의 전성기는 몇살 때 일까요 알콜솜10925.12.12-
[질문] 제가 공부하는 과목 중에 줄글을 그대로 달달 외워야하는 과목이 있는데알콜솜10925.12.12-
공부게시판 ㅎㅇㅌ재미있는토스13225.12.12추천 1
매일 순공 10시간 목표로 가요 -ㅂ-.. (2)알콜솜13625.12.12추천 1
2학기 마치는 12월 18일부터 공부들어갑니다. (3)알콜솜11725.12.12추천 1
공부 열심히해야 취업하지... 오잉뜨14125.12.05-
[부산-국비무료교육] 비전공자/초보자도 가능한 개발자 과정/쇼핑몰 과정 아이티윌부산12925.12.02-
수능 ㅎㅇㅌ구름비바람17125.11.13-
글쓰기