코딩/JAVA
GUI - JTebbedPane, ImageIcon 활용 예
ADWELL
2022. 8. 30. 15:46
public class GuiTest {
public static void main(String[] args) {
new P02_JTabbedPane();
}
}
class P02_JTabbedPane{
JFrame frame = new JFrame("P02_JTabbedPane");
JPanel panel1, panel2;
JLabel label = new JLabel();
JRadioButton[] radio = new JRadioButton[4];
String[] fruits = {"사과","바나나","멜론","포도"};
ImageIcon[] icon = {
new ImageIcon("image/apple.jpg"),
new ImageIcon("image/banana.jpg"),
new ImageIcon("image/melon.jpg"),
new ImageIcon("image/grape.jpg")
};
public P02_JTabbedPane() {
run2();
}
private void run2() {
JTabbedPane tabbedPane = new JTabbedPane();
//탭1의 패널
panel1 = new JPanel();
JButton btn_red = new JButton("RED");
JButton btn_blue = new JButton("BLUE");
JButton btn_green = new JButton("GREEN");
btn_red.addActionListener(new backgroundChangeListener());
btn_blue.addActionListener(new backgroundChangeListener());
btn_green.addActionListener(new backgroundChangeListener());
panel1.add(btn_red);
panel1.add(btn_blue);
panel1.add(btn_green);
//탭2의 패널
panel2 = new JPanel();
ButtonGroup btnGroup = new ButtonGroup();
for(int i=0; i<radio.length;i++) {
radio[i] = new JRadioButton(fruits[i]); //라디오버튼 생성
btnGroup.add(radio[i]); //라디오버튼 그룹화
radio[i].addItemListener(new MyItemListener()); //클릭시 이벤트
panel2.add(radio[i]); //패널2에 라디오버튼 추가
}
panel2.add(label);
tabbedPane.add("배경색",panel1);
tabbedPane.add("과일", panel2);
frame.add(tabbedPane);
frame.setBounds(600, 200, 500, 420);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
};
//색깔버튼 클릭시 배경색 변경하는 클래스
private class backgroundChangeListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
JButton btn_cur = (JButton)e.getSource();
String[] bgColor = {"RED", "BLUE", "GREEN"};
Color[] colors = {Color.RED, Color.BLUE, Color.GREEN};
for(int i=0; i<bgColor.length; i++) {
if(btn_cur.getText().equals(bgColor[i])) {
panel1.setBackground(colors[i]);
}
}
}
}
//라디오버튼 클릭시 이미지 띄우는 클래스
class MyItemListener implements ItemListener{
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange()==ItemEvent.DESELECTED) {
return;
}
for(int i=0; i<radio.length; i++) {
if(radio[i].isSelected()) {
Image img = icon[i].getImage().getScaledInstance(450, 300, Image.SCALE_SMOOTH);
icon[i] = new ImageIcon(img);
label.setIcon(icon[i]);
}
}
}
}
}