-
java) 메모장 만들기 2) 나가기, 복사, 붙여 넣기, 잘라내기, 삭제, 글꼴크기, 모달창 띄우기JAVA/멀티스레드, 이벤트 2024. 5. 28. 20:48
▤ 목차
✔ 나가기
💻 코드로 보기
else if (e.getSource() == mnuExit) { // 나가기 int close = JOptionPane.showConfirmDialog(this, "종료하시겠습니까?", "종료", JOptionPane.YES_NO_OPTION); switch (close) { case JOptionPane.YES_OPTION: System.exit(0); break; case JOptionPane.NO_OPTION: break; }
👏 중요
✔복사
💻 코드로 보기
else if (e.getSource() == mnuCopy) { // 복사 // System.out.println(txtMemo.getSelectedText()); //모든 범위 복사된다. copyText = txtMemo.getSelectedText(); //지정된 범위만 복사된다. }
👏 중요
✔붙여넣기
💻 코드로 보기
else if (e.getSource() == mnuPaste) { // 붙여넣기 // txtMemo.setText(copyText); //전체 글자가 날라간다. int position = txtMemo.getCaretPosition(); //커서가 있는 위치을 탐색한다. txtMemo.insert(copyText, position); }
👏 중요
✔잘라내기
💻 코드로 보기
else if (e.getSource() == mnuCut) { // 잘라내기 copyText = txtMemo.getSelectedText(); //copyText에 저장된 부분은 txtMemo에서 지움 int start = txtMemo.getSelectionStart(); int end = txtMemo.getSelectionEnd(); txtMemo.replaceRange("", start, end); }
👏 중요
✔삭제
💻 코드로 보기
else if (e.getSource() == mnuDel) { // 삭제 (범위지정) int start = txtMemo.getSelectionStart(); int end = txtMemo.getSelectionEnd(); txtMemo.replaceRange("", start, end); }
👏 중요
✔글꼴 크기
💻 코드로 보기
else if (e.getSource() == mnuFontSize) { // 글꼴크기 String fontSize = JOptionPane.showInputDialog(this,"글꼴 크기: ","16"); //기본값 16 if (fontSize != null) { try { int fSize = Integer.parseInt(fontSize); if (fSize == 0 ) { JOptionPane.showMessageDialog(null, "다시 입력하세요"); return; } txtMemo.setFont(new Font(txtMemo.getFont().getName(), txtMemo.getFont().getStyle(), fSize)); } catch (Exception e2) { JOptionPane.showConfirmDialog(this, "글꼴 크기를 정확히 입력하세요."); } } }
👏 중요
✔모달창 띄우기
💻 코드로 보기
# 메인클래스
else if (e.getSource() == mnuAbout) { // 메모장이란.. new Ex49MemoAbout(this); //모달은 다음 코드 진행을 안한다. System.out.println("About 호출 후 상황"); //modal과 modaless 구분(포커스) }
# 모달창 클래스 (JDialog)
public class MemoAbout extends JDialog implements ActionListener { //메모장에 종속되는 창이다. public MemoAbout(JFrame frame) { //부모 프레임을 알려줘야한다. super(frame); setTitle("메모장이란"); setModal(true); // true Modal initLayoutAbout(); setBackground(Color.LIGHT_GRAY); setBounds(350, 350, 200, 200); setVisible(true); } private void initLayoutAbout() { JLabel lblMes = new JLabel("미니 메모장 ver 0.9"); JButton btnConfirm = new JButton("확인"); btnConfirm.addActionListener(this); add("Center", lblMes); add("South", btnConfirm); } @Override public void actionPerformed(ActionEvent e) { dispose(); //JDialog 담기 } }
👏 Modal창
- true Modal
- false Modal 또는 Modaless
🪄구현 방법
1번 방법
// true Modal setModal(true); // false Modal, Modalsee setModal(false);
2번 방법
생성자에서 super를 사용하려면 가장 상단에 적어야한다.
super(frame,"메모장이란",true); //Modal이다. super(frame,"메모장이란",false); //false이면 Modaless이다
'JAVA > 멀티스레드, 이벤트' 카테고리의 다른 글
java) Swing 키보드 이벤트 + Frame창 이미지 이동시키기(+Toolkit) (0) 2024.05.30 java) Swing 코드 연습 ( JFrame 사용 ) + Mnemonic (0) 2024.05.29 java) 메모장 만들기 3) 윈도우 계산기 띄우기, 브라우저 실행하기, 팝업 메뉴 (+Desktop 클래스 / URI 클래스) (0) 2024.05.28 java) 메모장 만들기 1) 메뉴 + 열기 + 저장 (0) 2024.05.27 java 리스너 이벤트 처리 방법 (익명 객체, 내부 클래스) (0) 2024.05.24