자바 GUI 프로그래밍_2
JAVA반응형
실행 가능 ver1
package eample;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.ComponentOrientation;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class java extends JFrame{
java ()
{
setTitle("원 넓이 구하기");
setLayout(new BorderLayout(10,10));
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel panel1 = new JPanel(new GridLayout(2,0));
JLabel l1 = new JLabel("원의 반지름");
JLabel l2 = new JLabel("원의 넓이");
JTextField t1 = new JTextField(10);
JTextField t2 = new JTextField(10);
t2.setEnabled(false);
p1.add(l1);
p1.add(t1);
p2.add(l2);
p2.add(t2);
panel1.add(p1);
panel1.add(p2);
add(panel1, BorderLayout.NORTH);
//
JPanel panel2 = new JPanel();
JTextArea area = new JTextArea(30,20);
area.setText("이 영역에 원의 넓이를\n계산하는 과정이 나타납니다.");
area.setEditable(false);
area.setForeground(Color.RED);
panel2.add(area);
add(panel2, BorderLayout.CENTER);
//
String[] color = {"red","blue"};
JPanel panel3 = new JPanel(new FlowLayout(FlowLayout.CENTER,10,10));
JButton cal = new JButton("계산");
JComboBox<String> cb = new JComboBox<String>(color);
JButton reset = new JButton("리셋");
panel3.add(cal);
panel3.add(cb);
panel3.add(reset);
add(panel3, BorderLayout.SOUTH);
cal.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (t1.getText().isEmpty())
area.setText("반지름을 입력하세요!!!");
else
{
String s = t1.getText();
double radius = Double.parseDouble(s);
double result = radius*radius*3.14;
t2.setText(""+result);
area.setText(radius+"*"+radius+"*3.14="+result);
}
}
});
reset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
t1.setText("");
t2.setText("");
area.setText("이 영역에 원의 넓이를\n계산하는 과정이 나타납니다.");
}
});
cb.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
int index = ((JComboBox) cb).getSelectedIndex();
if (index == 0)
area.setForeground(Color.RED);
else
area.setForeground(Color.BLUE);
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,220);
setVisible(true);
}
public static void main(String[] args) {
new java();
}
}
실행가능 ver2
package eample;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.ComponentOrientation;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class java extends JFrame{
JTextField t1,t2;
JTextArea area;
JButton cal, reset;
JComboBox cb;
java ()
{
setTitle("원 넓이 구하기");
setLayout(new BorderLayout(10,10));
showNorth();
showCenter();
showSouth();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,220);
setVisible(true);
}
void showNorth()
{
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel panel = new JPanel(new GridLayout(2,0));
JLabel l1 = new JLabel("원의 반지름");
JLabel l2 = new JLabel("원의 넓이");
t1 = new JTextField(10);
t2 = new JTextField(10);
t2.setEnabled(false);
p1.add(l1);
p1.add(t1);
p2.add(l2);
p2.add(t2);
panel.add(p1);
panel.add(p2);
add(panel,BorderLayout.NORTH);
}
void showCenter()
{
JPanel panel = new JPanel();
area = new JTextArea(30,20);
area.setText("이 영역에 원의 넓이를\n계산하는 과정이 나타납니다.");
area.setEditable(false);
area.setForeground(Color.RED);
panel.add(area);
add(panel, BorderLayout.CENTER);
}
void showSouth()
{
String[] color = {"red","blue"};
JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER,10,10));
cal = new JButton("계산");
cb = new JComboBox<String>(color);
reset = new JButton("리셋");
panel.add(cal);
panel.add(cb);
panel.add(reset);
add(panel, BorderLayout.SOUTH);
cal.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (t1.getText().isEmpty())
area.setText("반지름을 입력하세요");
else
{
String s = t1.getText();
double radius = Double.parseDouble(s);
double result = radius * radius * 3.14;
t2.setText(""+result);
area.setText(radius+"*"+radius+"*3.14="+result);
}
}
});
reset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
t1.setText("");
t2.setText("");
area.setText("");
}
});
cb.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
int index = ((JComboBox) cb).getSelectedIndex();
if (index == 0)
area.setForeground(Color.RED);
else
area.setForeground(Color.BLUE);
}
});
}
public static void main(String[] args) {
new java();
}
}
반응형
'JAVA' 카테고리의 다른 글
JAVA GUI 프로그래밍 _4 (0) | 2020.01.18 |
---|---|
JAVA GUI 프로그래밍_3 (0) | 2020.01.18 |
자바 GUI 프로그래밍_1 (0) | 2020.01.12 |
자바 기본 api (0) | 2020.01.05 |
자바 예외처리 (0) | 2020.01.05 |