swing
그래픽 사용자 인터페이스에 Swing 사용
수색…
비고
창 닫기시 응용 프로그램 종료
창을 닫을 때 응용 프로그램을 종료하는 것을 잊기 쉽습니다. 다음 줄을 추가하십시오.
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed
빈 창 만들기 (JFrame)
JFrame 만들기
창을 만드는 것은 쉽습니다. JFrame
을 만들어야합니다.
JFrame frame = new JFrame();
창 제목 붙이기
창에 제목을 부여 할 수 있습니다. JFrame
만들 때 문자열을 전달하거나 frame.setTitle(String title)
을 호출하여 문자열을 전달할 수 있습니다.
JFrame frame = new JFrame("Super Awesome Window Title!");
//OR
frame.setTitle("Super Awesome Window Title!");
창 크기 설정
창은 창을 만들 때 최대한 작게 표시됩니다. 크기를 크게하려면 크기를 명시 적으로 설정할 수 있습니다.
frame.setSize(512, 256);
또는 pack()
메서드를 사용하여 내용의 크기에 따라 프레임 크기 자체를 가질 수 있습니다.
frame.pack();
setSize()
및 pack()
메서드는 함께 사용할 수 없으므로 둘 중 하나를 사용하십시오.
Window Close에서해야 할 일
창을 닫으면 응용 프로그램이 종료 되지 않습니다 . 창을 닫은 후에 JFrame
를 JFrame
응용 프로그램을 종료 할 수 있습니다.
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
또는 창을 닫을 때 다른 작업을 수행하도록 창에 지시 할 수 있습니다.
WindowConstants.DISPOSE_ON_CLOSE //Get rid of the window
WindowConstants.EXIT_ON_CLOSE //Quit the application
WindowConstants.DO_NOTHING_ON_CLOSE //Don't even close the window
WindowConstants.HIDE_ON_CLOSE //Hides the window - This is the default action
내용 창 만들기
선택적 단계는 창의 내용 창을 만드는 것입니다. 이것은 필요하지 않지만 원하는 경우 JPanel
만들고 frame.setContentPane(Component component)
호출하십시오.
JPanel pane = new JPanel();
frame.setContentPane(pane);
창 표시
생성 한 후에는 구성 요소를 만든 다음 창을 표시해야합니다. 창을 표시하는 것은 이와 같이 수행됩니다.
frame.setVisible(true);
예
복사하여 붙여 넣기를 원하는 사람들을 위해 여기에 몇 가지 예제 코드가 있습니다.
JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed
JPanel pane = new JPanel(); //Create the content pane
frame.setContentPane(pane); //Set the content pane
frame.setVisible(true); //Show the window
구성 요소 추가
구성 요소는 버튼이나 텍스트 필드와 같은 사용자 인터페이스 요소의 일종입니다.
구성 요소 만들기
구성 요소 만들기는 창 만들기와 거의 동일합니다. 그러나 JFrame
을 만드는 대신 해당 구성 요소를 만듭니다. 예를 들어, JButton
을 만들려면 다음을 수행하십시오.
JButton button = new JButton();
많은 구성 요소는 생성 될 때 매개 변수를 전달할 수 있습니다. 예를 들어 버튼에 표시 할 텍스트를 지정할 수 있습니다.
JButton button = new JButton("Super Amazing Button!");
단추를 작성하지 않으려는 경우이 페이지의 다른 예에서 공통 구성 요소 목록을 찾을 수 있습니다.
매개 변수는 구성 요소에 따라 달라질 수 있습니다. 그들이 받아 들일 수있는 것을 검사하는 좋은 방법은 IDE 내의 매개 변수를 보는 것입니다 (사용하는 경우). 기본 단축키는 다음과 같습니다.
- IntelliJ IDEA - Windows / Linux :
CTRL + P
- IntelliJ IDEA - OS X / macOS :
CMD + P
- Eclipse :
CTRL + SHIFT + Space
- NetBeans :
CTRL + P
구성 요소 표시
구성 요소를 만든 후에는 일반적으로 해당 매개 변수를 설정합니다. 이후에는 JFrame
이나 컨텐츠 창을 만든 경우와 같이 어딘가에 배치해야합니다.
frame.add(button); //Add to your JFrame
//OR
pane.add(button); //Add to your content pane
//OR
myComponent.add(button); //Add to whatever
예
다음은 창 만들기, 내용 창 설정 및 단추 추가에 대한 예제입니다.
JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed
JPanel pane = new JPanel(); //Create the content pane
frame.setContentPane(pane); //Set the content pane
JButton button = new JButton("Super Amazing Button!"); //Create the button
pane.add(button); //Add the button to the content pane
frame.setVisible(true); //Show the window
구성 요소에 대한 매개 변수 설정
구성 요소에는 다양한 매개 변수가 설정 될 수 있습니다. 그들은 구성 요소에 대한 구성 요소에 따라 다릅니다, 그래서 좋은 방법은 무엇 매개 변수 구성 요소에 설정할 수있는 것은 입력을 시작하는 것입니다 볼 수 componentName.set
(당신이 IDE를 사용하는 경우) 방법을 제안하고 IDE의 자동 완성을 할 수 있습니다. 많은 IDE의 기본 바로 가기가 자동으로 표시되지 않으면 CTRL + Space
입니다.
모든 구성 요소간에 공유되는 공통 매개 변수
기술 | 방법 |
---|---|
컴퍼넌트의 최소 사이즈를 설정합니다 (레이아웃 매니저가 minimumSize property를 지정하는 경우 만). | setMinimumSize(Dimension minimumSize) |
컴퍼넌트의 최대 사이즈를 설정합니다 (레이아웃 매니저가 maximumSize property를 나타내는 경우만). | setMaximumSize(Dimension maximumSize) |
컴퍼넌트의 예정 사이즈를 설정합니다 (레이아웃 매니저가 preferredSize property를 사용하는 경우 만). | setPreferredSize(Dimension preferredSize) |
구성 요소를 표시하거나 숨 깁니다. | setVisible(boolean aFlag) |
구성 요소가 사용자 입력에 응답해야하는지 여부를 설정합니다. | setEnabled(boolean enabled) |
텍스트의 글꼴을 설정합니다. | setFont(Font font) |
툴 힌트의 텍스트를 설정합니다. | setToolTipText(String text) |
구성 요소의 배경색을 설정합니다. | setBackground(Color bg) |
구성 요소의 전경색 (글꼴 색)을 설정합니다. | setForeground(Color bg) |
다른 구성 요소의 공통 매개 변수
공통 구성 요소 | 기술 | 방법 |
---|---|---|
JLabel , JButton , JCheckBox , JRadioButton , JToggleButton , JMenu , JMenuItem , JTextArea , JTextField | 표시된 텍스트를 설정합니다. | setText(String text) |
JProgressBar , JScrollBar , JSlider , JSpinner | Set는 구성 요소의 최소값과 최대 값 사이의 숫자 값입니다. | setValue(int n) |
JProgressBar , JScrollBar , JSlider , JSpinner | Set는 value 속성이 될 수있는 가능한 가장 작은 값입니다. | setMinimum(int n) |
JProgressBar , JScrollBar , JSlider , JSpinner | Set는 value 속성이 가질 수있는 가능한 최대 값입니다. | setMaxmimum(int n) |
JCheckBox , JToggleBox | 값이 true 또는 false인지 여부를 설정합니다 (예 : 체크 상자를 선택해야합니까?). | setSelected(boolean b) |
공통 구성 요소
기술 | 수업 |
---|---|
단추 | JButton |
체크 박스 | JCheckBox |
드롭 다운 메뉴 / 콤보 상자 | JComboBox |
상표 | JLabel |
명부 | JList |
메뉴 막대 | JMenuBar |
메뉴 막대의 메뉴 | JMenu |
메뉴 항목 | JMenuItem |
패널 | JPanel |
진행 표시 줄 | JProgressBar |
라디오 버튼 | JRadioButton |
스크롤 바 | JScrollBar |
슬라이더 | JSlider |
회 전자 / 번호 선택 도구 | JSpinner |
표 | JTable |
나무 | JTree |
텍스트 영역 / 여러 줄 텍스트 필드 | JTextArea |
텍스트 필드 | JTextField |
툴바 | JToolBar |
대화 형 사용자 인터페이스 만들기
버튼이 있으면 모두 좋고 좋지만, 클릭하지 않으면 무슨 일입니까? ActionListener
는, 버튼이나 다른 컴퍼넌트에, 발동시에 무엇인가를 실행하기 위해서 (때문에) 사용합니다.
ActionListener
의 추가는 그 자체로 행해집니다.
buttonA.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//Code goes here...
System.out.println("You clicked the button!");
}
});
또는 Java 8 이상을 사용하는 경우 ...
buttonA.addActionListener(e -> {
//Code
System.out.println("You clicked the button!");
});
예 (Java 8 이상)
JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed
JPanel pane = new JPanel(); //Create a pane to house all content
frame.setContentPane(pane);
JButton button = new JButton("Click me - I know you want to.");
button.addActionListener(e -> {
//Code goes here
System.out.println("You clicked me! Ouch.");
});
pane.add(buttonA);
frame.setVisible(true); //Show the window
구성 요소 레이아웃 구성
구성 요소를 하나씩 추가하면 구성 요소가 모두 어딘가에 있기 때문에 UI를 사용하기가 어려워집니다. 구성 요소는 위에서 아래로 정렬되며 각 구성 요소는 별도의 "행"으로 정렬됩니다.
이 문제를 해결하고 개발자에게 구성 요소를 쉽게 레이아웃 할 수있는 기능을 제공하려면 Swing에 LayoutManager
가 있어야합니다.
이러한 LayoutManager는 레이아웃 관리자 소개와 별도의 레이아웃 관리자 항목에서 더 광범위하게 다룹니다.