寫一個簡單的圖片瀏覽器:
package day14; import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.GridLayout; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class ImageBorwer extends JFrame{ /** 圖片瀏覽中的卡片佈局 **/ private CardLayout lyCard; /** 裝有7個標籤的面板 **/ private JPanel pnShow; public ImageBorwer(){ JPanel pnBasic = new JPanel(); pnBasic.setLayout(new BorderLayout()); // 定義用於顯示圖片的小面板 pnShow = new JPanel(); lyCard = new CardLayout(); pnShow.setLayout(lyCard); JLabel[] lbArrShow = new JLabel[7]; for(int i=0;i<lbArrShow.length;i++){ // 初始化標籤 lbArrShow[i] = new JLabel(); // 給標籤添加圖片 // 圖片路徑從工程開始。 ImageIcon icon = new ImageIcon("fff/role1/"+(i+1)+".png"); lbArrShow[i].setIcon(icon); pnShow.add(i+"",lbArrShow[i]); } pnBasic.add(pnShow,BorderLayout.CENTER); // 定義操作區按鈕的小面板 JPanel pnOpr = new JPanel(); // 指定該面板佈局爲1行3列 pnOpr.setLayout(new GridLayout(1,3)); String[] strArr = {"上一個","首頁","下一個"}; JButton[] btnArr = new JButton[strArr.length]; for(int i=0;i<strArr.length;i++){ btnArr[i] = new JButton(strArr[i]); // 給每一個按鈕添加監聽 btnArr[i].addActionListener(new ButtonMonitor()); pnOpr.add(btnArr[i]); } pnBasic.add(pnOpr,BorderLayout.SOUTH); // 綁定 setContentPane(pnBasic); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("圖片瀏覽"); // setSize setLocation ImageIcon icon = new ImageIcon("fff/icon24.png"); Image p_w_picpath = icon.getImage(); setIconImage(p_w_picpath); setBounds(200,200,400,300); pack(); // 窗體可見 setVisible(true); } private class ButtonMonitor implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { JButton btnClick = (JButton) e.getSource(); String strBtnTxt = btnClick.getText(); if("上一個".equals(strBtnTxt)){ // Iterator next()-->ListIterator next() privious(); lyCard.previous(pnShow); } else if("下一個".equals(strBtnTxt)){ // Iterator next()-->ListIterator next() privious(); lyCard.next(pnShow); }else if("首頁".equals(strBtnTxt)){ // Iterator next()-->ListIterator next() privious(); // lyCard.first(pnShow); // 取出指定名字的標籤 lyCard.show(pnShow, 3+""); } } } public static void main(String[] args) { new ImageBorwer(); } }
效果顯示: