CardLayout(显示图片)

源代码:

package Test12;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test04 extends JFrame implements ActionListener{
 private CardLayout cardlayout;
 private FlowLayout layout;
 private Icon icon1,icon2,icon3;
 private JLabel label[]=new JLabel[3];
 private JPanel button,image;
 private JButton previous=new JButton("上一张");
 private JButton next=new JButton("下一张");
 //private String name[]={"注意落石","车辆故障","禁止左转","最高限速"};
 private Container c;
 public Test04()
 {
  super("This is test04.java");
  c=getContentPane();
  cardlayout=new CardLayout();
  
  image=new JPanel();
  image.setLayout(cardlayout);
  icon1=new ImageIcon("E:\\MyEclipse9.0_Workspaces\\N012\\src\\Test12\\1.gif");
  icon2=new ImageIcon("E:\\MyEclipse9.0_Workspaces\\N012\\src\\Test12\\2.gif");
  icon3=new ImageIcon("E:\\MyEclipse9.0_Workspaces\\N012\\src\\Test12\\3.gif");
  label[0]=new JLabel(icon1,SwingConstants.LEFT);
  label[1]=new JLabel(icon2,SwingConstants.LEADING);
  label[2]=new JLabel(icon3,SwingConstants.LEADING);
  image.add(label[0]);
  image.add(label[1]);
  image.add(label[2]);
  
  button=new JPanel();
  button.add(previous);
  button.add(next);
  
  layout=new FlowLayout(FlowLayout.CENTER);
  c.setLayout(layout);
  c.add(button);
  c.add(image);

  previous.addActionListener(this);
  next.addActionListener(this);
  setSize(300,150);
  setVisible(true);
 }
 public void actionPerformed(ActionEvent e)
 {
  if(e.getSource()==previous)
   cardlayout.previous(image);
  if(e.getSource()==next)
   cardlayout.next(image);
 }
 public static void main(String args[])
 {
  Test04 app=new Test04();
  app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }

}

 

 运行结果1:

 

 运行结果2:

 

 运行结果3:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CardLayout是Java Swing中的一个布局管理器,它可以用于在同一个容器中切换多个组件。CardLayout中的每个组件都被称为一张卡片(card),每次只有一张卡片处于显示状态,其余卡片被隐藏。通过调用CardLayout中的方法,可以在这些卡片之间进行切换。 以下是使用CardLayout的示例代码: ``` import java.awt.CardLayout; import javax.swing.*; public class CardLayoutDemo extends JFrame { private JPanel cards; private JButton prevButton, nextButton; public CardLayoutDemo() { setTitle("CardLayout Demo"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 200); // 创建卡片面板 cards = new JPanel(new CardLayout()); // 添加多个卡片 cards.add(new JLabel("Card 1"), "card1"); cards.add(new JLabel("Card 2"), "card2"); cards.add(new JLabel("Card 3"), "card3"); // 创建按钮 prevButton = new JButton("Previous"); nextButton = new JButton("Next"); // 添加按钮的事件监听器 prevButton.addActionListener(e -> { CardLayout cardLayout = (CardLayout) cards.getLayout(); cardLayout.previous(cards); }); nextButton.addActionListener(e -> { CardLayout cardLayout = (CardLayout) cards.getLayout(); cardLayout.next(cards); }); // 将卡片面板和按钮添加到窗口中 add(cards); add(prevButton, "South"); add(nextButton, "North"); setVisible(true); } public static void main(String[] args) { new CardLayoutDemo(); } } ``` 在上面的示例代码中,我们创建了一个包含三个卡片的面板,并且添加了两个切换卡片的按钮。当用户点击“Previous”按钮时,会显示上一张卡片;当用户点击“Next”按钮时,会显示下一张卡片。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值