文章来源:电脑爱好者 作者:张剑

  谁知道通天的巴比伦塔耗费了多少沙石?又有谁知道罗马的建成经历了多少个日夜?我们惟一知道的是,没有一块块砖石的垒砌,就没有蜿蜒万里的长城;没有巨石和黏土的堆集,就没有亘古不变的金字塔。由此可见,基础知识的准备对于我们学习任何事物都至关重要,那么,就让我们从认识Swing的一些基础功能开始,启动我们建造罗马的伟大工程吧!

前言

  Java咖啡馆已经开张不少时日了,如果你已经喜欢上了Java这杯咖啡的味道,那么记得常来哦。这一次,我们为大家准备了一大杯香浓的咖啡——将以开发一个“连连看”游戏为蓝本,和大家共同学习Java中Swing的用法,当你细心品味这杯咖啡后,你会发现,不但Java这杯咖啡还别有一番风味,而且还学会了专业游戏的开发方法,真是两全其美!

  为了让大家先睹为快,下图便是游戏的截图。大家可以下载游戏试玩(下载游戏程序;下载源文件),然后在命令行方式下使用java -jar kyodai.jar来运行。此外,还可以到我的主页http://www.ismyway.com上下载这个游戏的单机版以及手机版进行试玩(见图1)。

    
    JPanel toolBar = new JPanel();
    toolBar.setBackground(Color.white);
    toolBar.setPreferredSize(new Dimension(780, 48));

  JPanel actionPanel = new JPanel(); //新建JPanel型的控件
    actionPanel.setBackground(Color.yellow); //设置背景色
    actionPanel.setPreferredSize(new Dimension(160, 380)); //设置大小

  JPanel contentPanel = new JPanel();
    contentPanel.setBackground(Color.blue);
    contentPanel.setPreferredSize(new Dimension(620, 380));
    this.getContentPane().add(toolBar, BorderLayout.NORTH);
    this.getContentPane().add(actionPanel, BorderLayout.EAST);
    this.getContentPane().add(contentPanel, BorderLayout.CENTER);
  }

     public static void main(String[] args) throws HeadlessException {
      KyodaiUI kyodaiUI = new KyodaiUI();
    kyodaiUI.show();
  }
}

  让我们来看看上面这段程序是如何运行的。首先,extends JFrame表明了这是从JFrame中继承过来的,JFrame是最基本的顶层容器控件。实际上,在JDK中,以字母J打头的控件都是Swing控件。然后设置了容器的属性,其中,setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)是用来告诉Java虚拟机,当用户点击窗体右上角的“关闭”按钮时,关闭该窗口进程。如果不这么做的话,你会发现虽然你可以点将窗口关闭,然而程序却没有退出。在接下来的代码中,我们为顶层容器添加了三个Panel容器。要注意的是,在AWT中,我们可以直接写为add(toolBar, BorderLayout.NORTH) ,而在 Swing 中却一定要写成getContentPane(). add(toolBar, BorderLayout.NORTH) ,否则程序就会出错。

  现在大家可以放在编译运行看看,是不是和我的运行结果一样(见图3)?

点赞(178)

评论列表共有 0 条评论

立即
投稿
返回
顶部