728x90
반응형
package Ex01;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ButtonAndImgLabelFrame extends JFrame{
private JLabel imageLabel;
private ImageIcon[] images = new ImageIcon[4];
int curId; //현재 선택된 이미지 번호(0~3)
public ButtonAndImgLabelFrame() {
setTitle("이미지 슬라이드");
setSize(300, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new BorderLayout());
//이미지 파일 로딩
//프로젝트의 img 폴더의 img01.jpg, img02.jpg...
for(int i=0; i<images.length; i++) {
images[i] = new ImageIcon("img/img"+ i + ".jpg");
}
curId = 0;
imageLabel = new JLabel(images[curId]); //현재 선택된 이미지를 레이틀에 출력
c.add(imageLabel, BorderLayout.CENTER);
c.add(new MenuPanel(), BorderLayout.SOUTH);
setVisible(true);
}
class MenuPanel extends JPanel{
public MenuPanel() {
//Panel은 레이아웃 미지정시 자동으로 Flow가 됨
setBackground(Color.gray);
ImageIcon leftIcon = new ImageIcon("img/bt_prev.png");
ImageIcon rightIcon = new ImageIcon("img/bt_next.png");
JButton leftBt = new JButton(leftIcon);
JButton rightBt = new JButton(rightIcon);
add(leftBt);
add(rightBt);
leftBt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
curId--;
curId = curId + images.length;
curId = curId % images.length;
imageLabel.setIcon(images[curId]);
}
});
rightBt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
curId++;
curId = curId % images.length;
imageLabel.setIcon(images[curId]);
}
});
}
}
public static void main(String[] args) {
new ButtonAndImgLabelFrame();
}
}
728x90
반응형
'JAVA > 예제' 카테고리의 다른 글
[JAVA] JSlider를 이용하여 JLabel 글자 크기 변경 (0) | 2022.10.25 |
---|---|
[JAVA] JSlider 변동시 JLabel text값 변경 (0) | 2022.10.25 |
[JAVA] JList 리스트 선택시 이미지 출력 (0) | 2022.10.25 |
[JAVA] JComboBox 콤보박스 클릭 시 이미지 출력 (0) | 2022.10.25 |
[JAVA] JRadioButton 버튼 클릭시 문구변경 (0) | 2022.10.25 |
댓글