일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- php
- Design Patterns
- MySQL
- it
- javascript
- ReactJS
- 요리
- laravel
- tool
- 맛집
- Oracle
- db
- JVM
- devops
- linux
- springboot
- Spring
- java
- Spring Boot
- Git
- Web Server
- Gradle
- Spring Batch
- IntelliJ
- jenkins
- jsp
- elasticsearch
- redis
- AWS
- ubuntu
- Today
- Total
아무거나
JAVA 그래픽 본문
[JAVA 그래픽]
JAVA GUI(Graphic User Interface)란
아이콘처럼 사용자가 사용하기 편리하게 그래픽 요소를 가미하여 컴퓨터를 사용하기 쉽게 만들어 놓은 것입니다.
반대의 개념으로 CUI(Character User Interface)가 있다.(ex-dos)
1. AWT 컴포넌트
-> AWT는 JAVA에서 그래픽 요소를 만들기 위한 컴포넌트들 이다. 예를 들어 버튼, 체크박스 등 입니다.
container { 버튼, 텍스트필드, 체크박스, container {버튼, 텍스트필드....} }
2. Button 컴포넌트
ex) [MainClass.java]
public class MainClass {
public static void main(String[] ages) {
MakeBtn btn = new MakeBtn();
btn.pack();
btn.setSize(new Dimension(200, 200)); // size설정 Dimension (가로,세로)
btn.setVisible(true);
try {
Thread.sleep(2000);
} catch (Exception e) {}
btn.setVisible(false);
btn.dispose();
try {
Thread.sleep(2000);
} catch (Exception e) {}
System.exit(0);
}
}
[MakeBtn.java]
import java.awt.*;
public class MakeBtn extends Frame {
public MakeBtn() {
Button btn = new Button("Button");
add(btn);
}
}
* pack() : 컴포넌트의 사이즈를 정함
setSize() : 컴포넌트 사이즈를 개발자가 정함
setVisible(true) : 화면에 출력
dispose() : 자원 해제
System.exit() : 애플리케이션 종료
3. Frame, Panel, List, Components, Event 처리
-> 큼지막하게 Frame이 있고 그 위에 List, Panel있고 Panel안에 Component들이 있다.
ex) [MainClass.java]
import java.awt.*;
public class MainClass {
public static void main(String[] args) {
MakeFrame makeFrame = new MakeFrame();
makeFrame.setSize(new Dimension(500, 500));
makeFrame.setVisible(true);
}
}
[MakeFrame.java]
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
// ActionListener 구현하면 actionPerformed메소드를 오버라이드 해줘야 된다.
// actionPerformed는 어떤 버튼이나 어떤 이벤트가 발생했을때 그 이벤트가 매개변수로 들어오면서 자동으로 호출된다.
public class MakeFrame extends Frame implements ActionListener {
private List list; // 아래 흰 화면
private Panel panel; // 텍스트 박스 및 버튼등을 감싸고 있는걸 패널
private TextField textField;
private Button okBtn;
private Button exitBtn;
public MakeFrame() {
list = new List();
panel = new Panel();
textField = new TextField();
okBtn = new Button("OK");
exitBtn = new Button("EXIT");
setLayout(new BorderLayout()); // Frame에 있는 method
add(panel, BorderLayout.NORTH);
add(list, BorderLayout.CENTER);
panel.add(new Label("write")); // 패널에 적용
panel.add(textField);
panel.add(okBtn);
panel.add(exitBtn);
// 아래 두개의 this는 actionPerformed을 호출한다.
okBtn.addActionListener(this);
exitBtn.addActionListener(this);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
setVisible(false);
dispose();
System.exit(0);
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == okBtn) {
list.add(textField.getText());
} else if(e.getSource() == exitBtn) {
setVisible(false);
dispose();
System.exit(0);
}
}
}
4. Swing 컴포넌트
-> Swing은 AWT보다 진보된 기능이라고 생각 하면 된다.
진보됐다는 것은 AWT보다 나중에 만들어져, 복잡하고 화려한 컴포넌트를 제공 한다.
(실무에서 많이 쓰이진 않는다.. 안드로이드를 하게되면 swing와 비슷한 구조를 보게 된다.)
ex) [MainClass.java]
public class MainClass {
public static void main(String[] args) {
MakeComp makeComp = new MakeComp();
makeComp.pack();
makeComp.setVisible(true);
}
}
[MakeComp.java]
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
// swing은 모든 class가 J로 시작한다 그래서 JFrame를 상속받았다.
public class MakeComp extends JFrame implements ActionListener {
JPanel jPanel;
JLabel jLabel;
JButton jButton;
JButton jButtonExit;
JTextField jTextField;
JComboBox jComboBox;
JCheckBox jCheckBox;
String[] items = {"A", "B", "C"};
JLabel jLabelBlank;
public MakeComp() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jPanel = (JPanel)getContentPane();
jPanel.setLayout(new FlowLayout());
jLabel = new JLabel("Label");
jButton = new JButton("Button");
jTextField = new JTextField(20);
jComboBox = new JComboBox(items);
jCheckBox = new JCheckBox("CheckBox");
jLabelBlank = new JLabel();
jButtonExit = new JButton("Exit");
jPanel.add(jLabel);
jPanel.add(jButton);
jPanel.add(jTextField);
jPanel.add(jComboBox);
jPanel.add(jCheckBox);
jPanel.add(jLabelBlank);
jPanel.add(jButtonExit);
jLabel.setPreferredSize(new Dimension(50, 50));
jButton.setPreferredSize(new Dimension(100, 50));
jTextField.setPreferredSize(new Dimension(300, 50));
jComboBox.setPreferredSize(new Dimension(50,50));
jCheckBox.setPreferredSize(new Dimension(100,50));
jLabelBlank.setPreferredSize(new Dimension(200,50));
jButtonExit.setPreferredSize(new Dimension(100,50));
jButton.addActionListener(this);
jButtonExit.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == jButton) {
jLabelBlank.setText(jTextField.getText());
} else if(e.getSource() == jButtonExit) {
setVisible(false);
dispose();
System.exit(0);
}
}
}
'Java & Kotlin > Java' 카테고리의 다른 글
iterator vs foreach (0) | 2019.08.17 |
---|---|
JAVA 네트워크 (0) | 2019.08.17 |
스레드(Thread) (0) | 2019.08.16 |
입출력(I/O) (0) | 2019.08.16 |
JAVA Collections (0) | 2019.08.16 |