1. JDialog
JDialog는 사용자에게 메시지를 표시하거나 사용자의 입력을 받기 위해 임시 창을 만들 때 사용하는 스윙 컴포넌트이다. 이 창은 모달(modal) 또는 모달리스(non-modal)일 수 있다. 모달 창은 사용자가 다른 창을 사용하기 전에 해당 다이얼로그를 닫아야 함을 의미한다.
- 모달형(Modal Dialog)
대화 상자를 끝내야만 다른 작업을 할 수 있다.
ex) JOptionPane - 비모달형(Non-Modal Dialog)
대화상자를 끝내지 않고 다른 윈도우를 사용하여 작업할 수 있다. JDialog 클래스를 직접 사용하여야 한다.
또한 다이얼로그는 디폴트로 모달형이며, 모달형인지 지정하는 것은 다이얼로그의 setModal() 메소드를 사용하여 지정하거나 생성자에 지정할 수 있다.
💡 대화 상자 객체의 종류
- JOptionPane
주로 표준화된 간단한 대화 상자 - ProgressMonitor
진행 과정을 보여주는 간단한 대화 상자 - JColorChooser
색상 선택기 - JFileChooser
파일 선택기 - JDialog
맞춤형 대화 상자 즉, 커스터마이징이 가능하다.
💻 예시 코드
import javax.swing.*;
public class ExampleDialog extends JFrame {
public void createAndShowGUI() {
// 메인 프레임 생성
JFrame frame = new JFrame("JDialog Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
// 버튼 생성 및 이벤트 처리
JButton button = new JButton("Open Dialog");
button.addActionListener(e -> {
JDialog dialog = new JDialog(frame, "Dialog", true);
dialog.setSize(200, 150);
dialog.add(new JLabel("<html><h3>This is a dialog</h3></html>", SwingConstants.CENTER));
dialog.setLocationRelativeTo(frame);
dialog.setVisible(true);
});
frame.add(button);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new ExampleDialog().createAndShowGUI();
});
}
}
2. JOptionPane
JOptionPane 클래스는 표준 대화 상자를 쉽게 만들 수 있도록 도와주는 스윙 컴포넌트이다. 사용자에게 정보를 보여주거나 사용자로부터 어떤 형태의 입력을 받을 때 유용하게 사용할 수 있다. 다양한 정적 메소드(showMessageDialog, showInputDialog, showConfirmDialog, showOptionDialog 등)를 제공하여, 간단한 코드만으로도 다양한 유형의 대화 상자를 빠르게 구현할 수 있다.
💡 주요 메소드
메소드 | 설명 |
showMessageDialog | 메시지를 표시하는 대화 상자를 생성 |
showInputDialog | 사용자 입력을 받는 대화 상자를 생성 |
showConfirmDialog | 사용자의 확인/취소 응답을 받는 대화 상자를 생성 |
showOptionDialog | 사용자 정의 버튼이 있는 대화 상자를 생성 |
💻 예시 코드
1️⃣ 메시지 대화 상자
JOptionPane.showMessageDialog(null, "Hello, World!", "Message", JOptionPane.INFORMATION_MESSAGE);
2️⃣ 입력 대화 상자
String response = JOptionPane.showInputDialog(null, "Enter your name:", "Input", JOptionPane.QUESTION_MESSAGE);
System.out.println("Your name is: " + response);
3️⃣ 확인 대화 상자
int result = JOptionPane.showConfirmDialog(null, "Are you sure?", "Confirm", JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.YES_OPTION) {
System.out.println("You selected Yes.");
} else {
System.out.println("You selected No.");
}
4️⃣ 옵션 대화 상자
Object[] options = {"Yes, please", "No, thanks", "Maybe"};
int choice = JOptionPane.showOptionDialog(null, "Do you like coffee?", "Choose an option",
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,
null, options, options[2]);
System.out.println("Your choice was: " + options[choice]);
32. JOptionPane, JDialog - 대화 상자
▶ 대화 상자 https://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html - 대화 상자 윈도우는 프레임같은 주 윈도우와는 다르게 임시 정보를 나타내는 데 사용되는 독립적인 서브 윈도우이다. - 주로
movefast.tistory.com
- 출처 : movefast
3. JAVA Desktop
JAVA Desktop 클래스 자바에서 제공하는 데스크탑 애플리케이션 개발을 위한 기능으로, 시스템 자원과 상호작용하거나 네이티브 애플리케이션과 통합하는 데 사용된다. JAVA 애플리케이션에서 HTML 파일 혹은 URL을 브라우저로 실행시키거나, 이미지를 뷰어로 전시하거나, 텍스트 파일을 메모장으로 열 수 있다. 만약 지원되는 응용프로그램이 없다면 예외가 발생한다.
💻 예시 코드
import java.awt.*;
import java.io.*;
public class DesktopExample {
public static void main(String[] args) {
try {
Desktop desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.OPEN)) {
desktop.open(new File("example.txt"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
[Java] Java Desktop(OS) 응용프로그램으로 파일, HTML, URL, 텍스트, 이미지 실행하기
이번시간에는 Java에서 Desktop(OS) 응용프로그램을 통해서 파일, HTML, URL, 이미지 등을 실행하는 방법에 대해서 알아보겠습니다 Java Desktop 클래스란? Java 애플리케이션에서 HTML 파일 혹은 URL을 브라
jinseongsoft.tistory.com
- 출처 : jinseongsoft
4. Popup Menu
Popup Menu는 사용자가 특정 컴포넌트를 우클릭(또는 플랫폼에 따라 다른 클릭 방법)할 때 나타나는 메뉴이다. 자바 스윙에서는 JPopupMenu 클래스를 사용하여 팝업 메뉴를 구현하며, 메뉴 아이템은 JMenuItem을 사용하여 추가한다. 팝업 메뉴는 다양한 컨텍스트에서 사용자에게 옵션을 제공하는 데 유용하다.
💡 주요 메소드
메소드 | 설명 |
add(Component) | 팝업 메뉴에 새로운 메뉴 아이템을 추가 |
show(Component, int x, int y) | 지정된 위치에 팝업 메뉴를 보여줌 |
setVisible(boolean) | 팝업 메뉴의 보이기/숨기기 상태를 설정 |
💻 예시 코드
import javax.swing.*;
import java.awt.event.*;
public class PopupMenuExample extends JFrame {
public PopupMenuExample() {
JPopupMenu popupMenu = new JPopupMenu();
JMenuItem menuItemAdd = new JMenuItem("Add");
popupMenu.add(menuItemAdd);
JMenuItem menuItemEdit = new JMenuItem("Edit");
popupMenu.add(menuItemEdit);
JMenuItem menuItemDelete = new JMenuItem("Delete");
popupMenu.add(menuItemDelete);
this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
popupMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
popupMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
});
this.setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new PopupMenuExample();
}
}
5. Keyboard Event
Keyboard Event는 사용자가 키보드를 사용하여 입력할 때 발생한다. 자바 스윙에서는 KeyListener 인터페이스 또는 KeyAdapter 클래스를 사용하여 키보드 이벤트를 처리한다. KeyListener 인터페이스는 keyPressed, keyReleased, keyTyped 세 가지 메소드를 제공한다.
💡 주요 메소드
메소드 | 설명 |
keyPressed(KeyEvent e) | 키가 눌렸을 때 호출 |
keyReleased(KeyEvent e) | 키가 떼어졌을 때 호출 |
keyTyped(KeyEvent e) | 유니코드 키 입력이 발생했을 때 호출 |
💻 예시 코드
import javax.swing.*;
import java.awt.event.*;
public class KeyboardEventExample extends JFrame {
public KeyboardEventExample() {
JTextField textField = new JTextField(20);
textField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
System.out.println("Pressed key: " + KeyEvent.getKeyText(e.getKeyCode()));
}
});
this.add(textField);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new KeyboardEventExample();
}
}
[Java] 자바 GUI, 누른 키 값 확인 / KeyListener
- KeyListener 키보드를 눌렀을 때 호출되는 메서드를 가지고 있는 인터페이스 입니다! * keyTyped(Key...
blog.naver.com
- 출처 : Bitpump
자바 이벤트 처리(2)_Key Event, Mouse Event
1. Key Event와 Key Listener Key 이벤트: 사용자가 키를 입력할 때 발생하는 이벤트. 포커스(키 입력 독점권)를 가진 컴포넌트에만 키 이벤트 전달 스윙 프로그램에서 강제로 임의의 컴포넌트에 포커스
yewon918.tistory.com
- 출처 : yewon918
[자바API_AWT/Swing] 키보드 이벤트 구현하기
■ 사용할 객체 ▶ KeyAdaptor - KeyListener를 구현한 추상클래스이다. - getKeyCode() : void ---- Virtual Code를 확인할 수 있다. [참고 : 키보드 정보가 들어오는 방식] - 각 회사의 키보드 -> OS/JVM에서 Virtual Key
why-dev.tistory.com
- why-dev
'에이콘아카데미 회고 > 5회차) 자바기반 풀스택 개발자 양성과정' 카테고리의 다른 글
JAVA) 25번째 회고 (0) | 2024.05.06 |
---|---|
JAVA) 24번째 회고 (0) | 2024.05.02 |
JAVA) 22번째 회고 (0) | 2024.04.30 |
JAVA, SQL) 21번째 회고 (0) | 2024.04.29 |
SQL) 20번째 회고 (0) | 2024.04.28 |