指引网

当前位置: 主页 > 编程开发 > Java >

Java UI开发中工具包 Swing intro 实例

来源:网络 作者:佚名 点击: 时间:2017-08-23 21:27
[摘要] 指引教程为您提供Java UI开发中工具包 Swing intro 实例等资源,欢迎您收藏本站,我们将为您提供最新的Java UI开发中工具包 Swing intro 实例资源
Swing是一个用于开发Java应用程序用户界面的开发工具包。以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。
<script>ec(2);</script>

Swing工具包跟Android app开发的UI方面有相似的地方。本文我们来介绍一下Swing。


先用代码就能抛出一个框框,记录一下操作过程


1.先显示一个框框

EraseBlockGame类是主类,包含了main入口,继承自 JFrame

<pre class="brush:java;toolbar:false">public class EraseBlockGame extends JFrame{ ......     public EraseBlockGame(String GameTitle){  // 构造方法         super(GameTitle);         setSize(408, 640);         setLocationRelativeTo(null);// place in the center of screen          ......         setVisible(true);     } }</pre>


设置窗口大小,设置窗口在屏幕上的位置,窗口可见

<pre class="brush:java;toolbar:false">    public static void main(String args[]){         EraseBlockGame e = new EraseBlockGame("Erase Block Game");     }</pre>


运行一下程序,弹出一个窗口;窗口名称为Erase Block Game


2.菜单栏

菜单栏有菜单按钮,以及菜单选项

<pre class="brush:java;toolbar:false">import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem;     JMenuBar 是整个菜单     JMenu 是菜单栏上的单个按钮     JMenuItem 点开单个餐单键,弹出的子选项item public class EraseBlockGame extends JFrame{     private static final long serialVersionUID = 1L;     private JMenuBar menuBar = new JMenuBar();     private JMenu mGame = new JMenu("Game");     private JMenuItem miNewGame = new JMenuItem("New game");     private JMenuItem miExit = new JMenuItem("Exit");     ...... }</pre>


如果多几个选项,总是new似乎不大好,用简单工厂来代替new
定义JMenuFactory,里面有创建JMenu的方法

<pre class="brush:java;toolbar:false">package com.rust.util; import javax.swing.JMenu; public class JMenuFactory {     JMenu menu;     public JMenuFactory(){              }     public JMenu createMenu(String title){         JMenu menu = new JMenu(title);         return menu;     } }</pre>


同样定义JMenuItemFactory

<pre class="brush:java;toolbar:false">package com.rust.util; import javax.swing.JMenuItem; public class JMenuItemFactory {     JMenuItem item;     public JMenuItemFactory(){              }     public JMenuItem createMenuItem(String title){         item = new JMenuItem(title);         return item;     } }</pre>


原来的new就可以替换为

  

<pre class="brush:java;toolbar:false">  private JMenu mGame;     private JMenu mControl;     private JMenu mInfo;     private JMenuItem miNewGame;     private JMenuItem miExit;     ......         mGame = menuFactory.createMenu("Game");         mControl = menuFactory.createMenu("Control");         mInfo = menuFactory.createMenu("Info");         miNewGame = miFactory.createMenuItem("New game");         miExit = miFactory.createMenuItem("Exit");</pre>

在构造函数中给菜单item添加ActionListener,和Android app的Button差不多

<pre class="brush:java;toolbar:false">        miNewGame.addActionListener(new ActionListener() {             @Override             public void actionPerformed(ActionEvent e) {                              }         });         miExit.addActionListener(new ActionListener() {             @Override             public void actionPerformed(ActionEvent e) {                 System.exit(0);             }         });                  mGame.add(miNewGame);//这里添加的顺序就是排列的顺序         mGame.add(miExit);//往menu中添加子项         menuBar.add(mGame);         menuBar.add(mControl);//这里添加的顺序就是排列的顺序                  setJMenuBar(menuBar);</pre>


如此看来,Swing活在了Android中


3.放置按钮

此时界面上只有一些菜单按键,多摆几个按钮上去看看

定义一个控制面板类ControlBoard 继承自 JPanel

<pre class="brush:java;toolbar:false">/**  * 控制面板,提供很多快捷的控制功能  * @author Rust Fisher  */ public class ControlBoard extends JPanel{     private JButton btnStart;     private JButton btnStop;     private JButton btnPause;     private JButton btnReset;     private JButton btnExit;     /*定义一个按钮区域areaButton,用来存放btn*/     private JPanel areaButton = new JPanel(new GridLayout(5, 1));          private EraseBlockGame game;     /*按钮区域的框框*/     private Border border = new EtchedBorder(EtchedBorder.RAISED, Color.WHITE,Color.gray);          public ControlBoard(final EraseBlockGame game){         setLayout(new GridLayout(3,1,0,1));         this.game = game;//用于控制                  btnStart = new JButton("Start");         btnStart.setEnabled(true);         btnStop = new JButton("Stop");         btnStop.setEnabled(false);         btnPause = new JButton("Pause");         btnPause.setEnabled(false);         btnReset = new JButton("Reset");         btnReset.setEnabled(true);         btnExit = new JButton("Exit");         btnExit.setEnabled(true);                  areaButton.add(btnStart);         areaButton.add(btnPause);         areaButton.add(btnStop);         areaButton.add(btnReset);         areaButton.add(btnExit);                  areaButton.setBorder(border);                  add(areaButton);// 把按钮区添加到控制面板上         btnStart.addActionListener(new ActionListener() {             @Override             public void actionPerformed(ActionEvent e) {                 // go go go                              }         });         btnExit.addActionListener(new ActionListener() {             @Override             public void actionPerformed(ActionEvent e) {                 System.exit(0);//886             }         });     } ...... }</pre>


在EraseBlockGame类里加载按钮区域

<pre class="brush:java;toolbar:false">public class EraseBlockGame extends JFrame{ ......     private ControlBoard controlBoard;          public EraseBlockGame(String title){         ......         Container container = getContentPane();         controlBoard = new ControlBoard(this);         container.add(controlBoard, BorderLayout.EAST);//添加控制面板         ......     } }</pre>


于是按钮就被装到程序上了

其他的就先不纠结了,Swing了解个大概就好;可以多看看android开发

------分隔线----------------------------