首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图让cardLayout工作

试图让cardLayout工作
EN

Stack Overflow用户
提问于 2015-06-22 02:36:41
回答 1查看 79关注 0票数 0

我所要做的就是设置一个卡片布局样式按钮。理论上,您应该单击该按钮,而另一个名称(在本例中)应该一直出现直到完成。(当用户关闭时)

我有这个,我觉得它应该完全有效,但是JGrasp给了我一个错误:

代码语言:javascript
复制
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class JDisappearingFriends extends JFrame implements ActionListener
{
   private JButton intro = new JButton("Click to see Friends!");
   private JButton nb = new JButton("Mini Vinny");
   private JButton sb = new JButton("Makayla");
   private JButton eb = new JButton("Aurora");
   private JButton wb = new JButton("Alyssa");
   private JButton cb = new JButton("And My Bestest Friend: SAMMY!!");
   CardLayout cardLayout = new CardLayout();
   public JDisappearingFriends()
   {
      setLayout(new CardLayout());
      add("Click to see Friends!", intro);
      add("MiniVinny", nb);
      add("Makayla", sb);
      add("Aurora", eb);
      add("Alyssa", wb);
      add("And Finally My Best Friend Sammy!", cb);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      intro.addActionListener(this);
      nb.addActionListener(this);
      sb.addActionListener(this);
      eb.addActionListener(this);
      wb.addActionListener(this);
   }
   public void actionPreformed(ActionEvent e)
   {
      cardLayout.next(getContentPane());
   }
   public static void main(String[] args)
   {
      JDisappearingFriends jbl = new JDisappearingFriends();
      jbl.setSize(400, 400);
      jbl.setVisible(true);
   }
}

当我试图编译时,我会收到一条错误消息,如下所示:

代码语言:javascript
复制
JDisappearingFriends.java:8: error: JDisappearingFriends is not abstract and does not override abstract method actionPerformed(ActionEvent) in ActionListener

公共类JDisappearingFriends扩展JFrame实现ActionListener ^,如果有人能给我一个提示,我会非常感激的!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-22 02:38:25

您的错误消息为您提供了一个很好的指示,说明了问题所在:

JDisappearingFriends.java:8: error: JDisappearingFriends is not abstract and does not override abstract method actionPerformed(ActionEvent) in ActionListener

actionPreformed是错的,应该是actionPerformed

您还应该习惯使用@Override注释。

代码语言:javascript
复制
@Override
public void actionPreformed(ActionEvent e)
{
    cardLayout.next(getContentPane());
}

当您从其他类重写方法时,这会有所帮助,并提供编译时保护,以确保您不会意外地拼写错误的方法名称。

您还应该在EDT上下文中创建UI。有关更多详细信息,请参阅初始线程

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30971424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档