카테고리

분류 전체보기 (68)
JAVA-기본 (7)
JAVA-AWT (24)
JAVA-클래스의 중요메소드 (23)
JAVA-람다식 (0)
Android Studio (7)
Python (1)
OpenCV (1)
AWS (0)
webrtc (0)
javascript (4)
처리방침 (1)
rss 아이콘 이미지
반응형

앞의 장에서 배운 AcitonListener를 통하여 어떤 글자를 가지고 오며 끝의 한 글자를 지우는 기능이 있는 화면을 구현하겠습니다.


backspace 기능입니다.


 import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

 

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

 

public class G3 extends JFrame implements ActionListener {

        // 2. implements 해야 override 가능(중요)

 

        JButton b1 = new JButton("1");

        //" 글자를 버튼을 누르면 text 붙이시오" 라벨과 textfiled 새로 적어주는 버튼

        JButton b2 = new JButton("back");

        //글자하나를 지우는 기능으로 백스페이스 기능

       

        JPanel p1 = new JPanel();

        JPanel p2 = new JPanel();

        JTextField t1 = new JTextField(30);

        JLabel l1 = new JLabel(" 글자를 버튼을 누르면 text 붙이시오");

        JLabel l2 = new JLabel("");

 

        public G3() {

 

               setLayout(new GridLayout(2, 1));

               p1.setLayout(new GridLayout(1, 2));

               p2.setLayout(new GridLayout(1, 2));

               add(p1);

               add(p2);

 

               b1.addActionListener(this);

               b2.addActionListener(this);

               // 1. 위를 작성하고 앞부분 클릭하면 let implements 있는 클릭하면 위쪽의 jframe옆에 자동생성됨

 

               p1.add(l1);

               p1.add(t1);

 

               p2.add(b1);

               p2.add(b2);

 

               setLocationRelativeTo(null);

               setSize(500, 500);

               setResizable(false);

               setVisible(true);

               setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

        }

 

        public static void main(String args[]) {

               G3 test = new G3();

        }

 

        @Override

        // 3. 위쪽 부분의 implements 클릭하면 add implements 통하여 자동생성가능

        // getAcitonCommand component text 가져오는 기능

        // getSource component 변수를 가지고옴

        public void actionPerformed(ActionEvent e) {

               String a = e.getActionCommand();

 

               if (a == "1") {

                       t1.setText(" 글자를 버튼을 누르면 text 붙이시오");

                       l1.setText(" 글자를 버튼을 누르면 text 붙이시오");

 

               } else if (a == "back") {

                       int t = l1.getText().length();

                       //" 글자를 버튼을 누르면 text 붙이시오" 길이를 int 나타내는 t

                       //substring으로 문자를 짜르려고 t 필요 문장 그대로 적으면 복잡하실까봐 t 치환

                      

                       if (t == 0)            //글자가 없을 경우

                       {

                              //마지막으로 한글자를 지우면 텍스트는 비는데 그때 backspace기능을 쓰면 당연히

                              //length값이 0이므로 함수의 오류로가 된다. 그래서 length 0일때는 그대로 빈칸""입력

                              t1.setText("");

                              l1.setText("");

                       }

                       else if(t>0)   //글자가 있을 경우

                       {

                             

                              String b = l1.getText().substring(0, t - 1);

                              //l1 글자를 끝에 하나를 자르는 substring 함수

                              t1.setText(b);

                              l1.setText(b);

                              //l1에도 한글자를 자른 문자를 넣는 이유는

                              //지금은 hashlist등을 아직 강의 하지 않았으므로 메모리 기능이 없어 l1 저장하였음

                             

                       }

                       else

                       {

                              t1.setText("알수없는 오류");

                       }

 

        }

}

}

 


<결과물>

 <1버튼 눌렀을 경우 글자를 가지고옴>



<back 버튼을 누르면 글자가 한 글자씩 지워짐>

 

자료가 마음에 드셨다면 자주 찾아주세요^^ 글 올리는데 힘이됩니다.

반응형

'JAVA-AWT > ActionListener' 카테고리의 다른 글

JAVA-AWT-ActionListener02(복사/ 클린 기능)  (0) 2018.06.20
JAVA-AWT-ActionListener  (0) 2018.06.20