判断当前CardLayout问题

jmfish 2003-05-13 10:57:07
一个JPanel定义为CardLayout,有3个Card
如何在另一个JPanel里判断当前显示的是哪一个Card?
if(某个选中)添什么?
{……}
...全文
67 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ytdmm 2003-05-13
  • 打赏
  • 举报
回复
CardLayout类中没有此函数,并且也没有其他用于得到自身状态的方法。它的一些方法只用于设置当前显示的Card。

其实显示哪一个Card是由其他因素决定的,可以考虑一下利用其他的方法。例如添加三个按钮,单击一个按钮对应显示一个Card,则判断当前显示的哪一个Card只需判断哪个按钮被按下即可!
jmfish 2003-05-13
  • 打赏
  • 举报
回复
前面程序我见过,调用next和previous,和当前card无关,不过还是谢谢。
请问楼上具体如何用索引号。
xu_kewei 2003-05-13
  • 打赏
  • 举报
回复
还有你可以使用Card的索引号
xu_kewei 2003-05-13
  • 打赏
  • 举报
回复
你可以写事件处理动作。CardLayout有ActionEvent
rocandroc 2003-05-13
  • 打赏
  • 举报
回复
//给你一个源程序,参考一下



// Java core packages
import java.awt.*;
import java.awt.event.*;

// Java extension packages
import javax.swing.*;

public class CardDeck extends JFrame implements ActionListener {

private CardLayout cardManager;
private JPanel deck;
private JButton controls[];
private String names[] = { "First card", "Next card",
"Previous card", "Last card" };

// set up GUI
public CardDeck()
{
super( "CardLayout " );

Container container = getContentPane();

// create the JPanel with CardLayout
deck = new JPanel();
cardManager = new CardLayout();
deck.setLayout( cardManager );

// set up card1 and add it to JPanel deck
JLabel label1 =
new JLabel( "card one", SwingConstants.CENTER );
JPanel card1 = new JPanel();
card1.add( label1 );
deck.add( card1, label1.getText() ); // add card to deck

// set up card2 and add it to JPanel deck
JLabel label2 =
new JLabel( "card two", SwingConstants.CENTER );
JPanel card2 = new JPanel();
card2.setBackground( Color.yellow );
card2.add( label2 );
deck.add( card2, label2.getText() ); // add card to deck

// set up card3 and add it to JPanel deck
JLabel label3 = new JLabel( "card three" );
JPanel card3 = new JPanel();
card3.setLayout( new BorderLayout() );
card3.add( new JButton( "North" ), BorderLayout.NORTH );
card3.add( new JButton( "West" ), BorderLayout.WEST );
card3.add( new JButton( "East" ), BorderLayout.EAST );
card3.add( new JButton( "South" ), BorderLayout.SOUTH );
card3.add( label3, BorderLayout.CENTER );
deck.add( card3, label3.getText() ); // add card to deck

// create and layout buttons that will control deck
JPanel buttons = new JPanel();
buttons.setLayout( new GridLayout( 2, 2 ) );
controls = new JButton[ names.length ];

for ( int count = 0; count < controls.length; count++ ) {
controls[ count ] = new JButton( names[ count ] );
controls[ count ].addActionListener( this );
buttons.add( controls[ count ] );
}

// add JPanel deck and JPanel buttons to the applet
container.add( buttons, BorderLayout.WEST );
container.add( deck, BorderLayout.EAST );

setSize( 450, 200 );
setVisible( true );

} // end constructor

// handle button events by switching cards
public void actionPerformed( ActionEvent event )
{
// show first card
if ( event.getSource() == controls[ 0 ] )
cardManager.first( deck );

// show next card
else if ( event.getSource() == controls[ 1 ] )
cardManager.next( deck );

// show previous card
else if ( event.getSource() == controls[ 2 ] )
cardManager.previous( deck );

// show last card
else if ( event.getSource() == controls[ 3 ] )
cardManager.last( deck );
}

// execute application
public static void main( String args[] )
{
CardDeck cardDeckDemo = new CardDeck();

cardDeckDemo.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE );
}

} // end class CardDeck


Java 2实用教程(第三版)实验指导与习题解答 清华大学出版社 (编著 耿祥义 张跃平) 实验模版代码 建议使用文档结构图 (选择Word菜单→视图→文档结构图) 上机实践1 初识Java 4 实验1 一个简单的应用程序 4 实验2 一个简单的Java Applet程序 4 实验3 联合编译 5 上机实践2 基本数据类型与控制语句 6 实验1 输出希腊字母表 6 实验2 回文数 6 实验3 猜数字游戏 8 上机实践3 类与对象 9 实验1 三角形、梯形和圆形的类封装 9 实验2 实例成员与类成员 12 实验3 使用package语句与import语句 13 上机实践4 继承与接口 15 实验1 继承 15 实验2 上转型对象 17 实验3 接口回调 18 上机实践5 字符串、时间与数字 19 实验1 String类的常用方法 19 实验2 比较日期的大小 21 实验3 处理大整数 22 上机实践6 组件及事件处理 23 实验1 算术测试 23 实验2 信号灯 25 实验3 布局与日历 28 上机实践7 组件及事件处理2 31 实验1 方程求根 31 实验2 字体对话框 34 实验3 英语单词拼写训练 37 上机实践8 多线程 41 实验1 汉字打字练习 41 实验2 旋转的行星 43 实验3 双线程接力 47 上机实践9 输入输出流 50 实验1 学读汉字 50 实验2 统计英文单词字 53 实验2 读取Zip文件 56 上机实践10 Java 中的网络编程 57 实验1 读取服务器端文件 57 实验2 使用套接字读取服务器端对象 59 实验3 基于UDP的图像传输 62 上机实践11 数据结构 66 实验1 扫雷小游戏 66 实验2 排序与查找 70 实验3 使用TreeSet排序 72 上机实践12 java Swing 74 实验1 JLayeredPane分层窗格 74 实验2 使用表格显示日历 75 实验3 多文档界面(MDI) 78 上机实践1 初识Java 实验1 一个简单的应用程序 2.模板代码 Hello.java package 实验一; public class Hello { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("你好,很高兴学习Java"); //命令行窗口输出"你好,很高兴学习Java" A a=new A(); a.fA(); } } class A { void fA() {System.out.println("we are student"); } } 实验2 一个简单的Java Applet程序 2.模板代码 FirstApplet.java import java.applet.*; import java.awt.*; public class FirstApplet extends Applet { public void paint(Graphics g) { g.setColor(Color.blue); g.drawString("这是一个Java Applet 程序",10,30);//在Java Applet中绘制一行文字:“这是一个Java Applet 程序” g.setColor(Color.red); g.setFont(new Font("宋体",Font.BOLD,36)); g.drawString("我改变了字体",20,50);//在Java Applet中绘制一行文字:“我改变了字体” } }实验3 联合编译 2.模板代码 public class MainClass { public static void main (String args[ ]) { System.out.println("你好,只需编译我") ; //命令行窗口输出"你好,只需编译我" A a=new A(); a.fA(); B b=new B(); b.fB(); } } public class A { void fA() {

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧