前言
本题来自于大学软件工程专业GUI实验
题目描述
编写应用程序,有一个标题为“电子相册”的窗口,布局为 BorderLayout, 通过多个有图标的标签显示多张图片制作一个电子相册,多个标签采用 CardLayout 布局,有 5 个菜单项,其中“第一张”,“上一张”,“下一张”、“最后一张”4 个菜单项被单击时用于实现
相关知识点描述
本题需要用到 :Frame(窗体)、Panal(面板)、BorderLayout、CardLayout(布局)、Menu(菜单)、addActionListerener(行为监听器)
为了使用方便,设置了Button()
.
正题
这是项目结构
代码示例
package Shiyan1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CardLy {
public static void main(String[] args) {
Cardlayout cardlayout = new Cardlayout("电子相册");
}
}
class Cardlayout extends Frame implements ActionListener {
JPanel cardPanel = new JPanel();
JPanel controlpaPanel = new JPanel();
JButton firstbutton,nextbutton, preButton,lastbutton,exitbutton;
CardLayout cardLayout = new CardLayout();
MenuItem menuItem1,menuItem2,menuItem3,menuItem4,menuItem5;
public Cardlayout(String title) {
super(title);
setSize(500, 500);
setVisible(true);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
Cardlayout.this.dispose();
}
});
cardPanel.setLayout(cardLayout);
String url1="D:\\IDEA\\Chai\\day06\\src\\Shiyan1\\1.jpg";
ImageIcon imageIcon1 = new ImageIcon(url1);
String url2="D:\\IDEA\\Chai\\day06\\src\\Shiyan1\\2.jpg";
ImageIcon imageIcon2 = new ImageIcon(url2);
String url3="D:\\IDEA\\Chai\\day06\\src\\Shiyan1\\3.jpg";
ImageIcon imageIcon3 = new ImageIcon(url3);
String url4="D:\\IDEA\\Chai\\day06\\src\\Shiyan1\\4.jpg";
ImageIcon imageIcon4 = new ImageIcon(url4);
String url5="D:\\IDEA\\Chai\\day06\\src\\Shiyan1\\5.jpg";
ImageIcon imageIcon5 = new ImageIcon(url5);
cardPanel.add(new JLabel(new ImageIcon(url1)));
cardPanel.add(new JLabel(new ImageIcon(url2)));
cardPanel.add(new JLabel(new ImageIcon(url3)));
cardPanel.add(new JLabel(new ImageIcon(url3)));
cardPanel.add(new JLabel(new ImageIcon(url5)));
firstbutton=new JButton("第一张");
nextbutton = new JButton("下一张");
preButton = new JButton("上一张");
lastbutton=new JButton("最后一张");
exitbutton=new JButton("退出");
firstbutton.addActionListener(this);
nextbutton.addActionListener(this);
preButton.addActionListener(this);
lastbutton.addActionListener(this);
exitbutton.addActionListener(this);
controlpaPanel.add(firstbutton);
controlpaPanel.add(preButton);
controlpaPanel.add(nextbutton);
controlpaPanel.add(lastbutton);
controlpaPanel.add(exitbutton);
this.add(cardPanel, BorderLayout.CENTER);
this.add(controlpaPanel, BorderLayout.SOUTH);
validate();
MenuBar menuBar = new MenuBar();
this.setMenuBar(menuBar);
Menu menu = new Menu("Mainpulation");
menu.setFont(new Font("宋体",Font.BOLD,20));
menuBar.add(menu);
menuItem1 = new MenuItem("First card");
menuItem2 = new MenuItem("Next card");
menuItem3 = new MenuItem("Last card");
menuItem4 = new MenuItem("The last card");
menuItem5 = new MenuItem("Exit");
menu.add(menuItem1);
menu.add(menuItem2);
menu.add(menuItem3);
menu.add(menuItem4);
menu.add(menuItem5);
menuItem1.addActionListener(this);
menuItem2.addActionListener(this);
menuItem3.addActionListener(this);
menuItem4.addActionListener(this);
menuItem5.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == nextbutton || e.getSource()==menuItem1) {
cardLayout.next(cardPanel);
}
if (e.getSource() == preButton || e.getSource()==menuItem2) {
cardLayout.previous(cardPanel);
}
if (e.getSource() == firstbutton || e.getSource()==menuItem3) {
cardLayout.first(cardPanel);
}
if (e.getSource() == lastbutton || e.getSource()==menuItem4) {
cardLayout.last(cardPanel);
}
if (e.getSource() == exitbutton || e.getSource()==menuItem5) {
System.exit(0);
}
}
}
```java
在这里插入代码片
**运行结果**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527233042723.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzA3NzU5MQ==,size_16,color_FFFFFF,t_70)