初步学习Swing

一直就想学习java的桌面编程,可惜直到现在因为是在unix上的原因并不需要java程序有界面,不过自己还是想好好学习学习。所以从今天开始总结经验:

1 import java.awt.*;
2 import java.awt.event.*;
3 import javax.swing.*;
4
5 public class ToolbarFrame2 extends Frame {
6
7   // 使用Swing组件
8   JButton cutButton, copyButton, pasteButton;
9   JButton javaButton, macButton, motifButton, winButton;
10
11   public ToolbarFrame2( ) {
12     super("Toolbar Example (Swing)");
13     setSize(450, 250);
14
15         //退出
16     addWindowListener(new WindowAdapter( ) {
17       public void windowClosing(WindowEvent e) {
18         System.exit(0);
19       }
20     });
21        
22         //匿名类来出来copy cut  paste事件
23     ActionListener printListener = new ActionListener( ) {
24       public void actionPerformed(ActionEvent ae) {
25         System.out.println(ae.getActionCommand( ));
26       }
27     };
28  
29     // 上层的工具面版.
30     JPanel toolbar = new JPanel( );
31     toolbar.setLayout(new FlowLayout(FlowLayout.LEFT));//流式布局
32
33     cutButton = new JButton("Cut");
34     cutButton.addActionListener(printListener);
35     toolbar.add(cutButton);
36
37     copyButton = new JButton("Copy");
38     copyButton.addActionListener(printListener);
39     toolbar.add(copyButton);
40
41     pasteButton = new JButton("Paste");
42     pasteButton.addActionListener(printListener);
43     toolbar.add(pasteButton);
44
45     add(toolbar, BorderLayout.NORTH);
46
47     // 添加感观按钮
48     JPanel lnfPanel = new JPanel( );
49     LnFListener lnfListener = new LnFListener(this);
50     macButton = new JButton("Mac");
51     macButton.addActionListener(lnfListener);
52     lnfPanel.add(macButton);
53     javaButton = new JButton("Metal");
54     javaButton.addActionListener(lnfListener);
55     lnfPanel.add(javaButton);
56     motifButton = new JButton("Motif");
57     motifButton.addActionListener(lnfListener);
58     lnfPanel.add(motifButton);
59     winButton = new JButton("Windows");
60     winButton.addActionListener(lnfListener);
61     lnfPanel.add(winButton);
62     add(lnfPanel, BorderLayout.SOUTH);
63   }
64
65   public static void main(String args[]) {
66     ToolbarFrame2 tf2 = new ToolbarFrame2( );
67     tf2.setVisible(true);
68   }
69 }

1 import java.awt.*;
2 import java.awt.event.*;
3 import javax.swing.*;
4
5
6 public class LnFListener implements ActionListener {
7   Frame frame;
8
9   public LnFListener(Frame f) {
10     frame = f;
11   }
12
13   public void actionPerformed(ActionEvent e) {
14     String lnfName = null;
15     if (e.getActionCommand( ).equals("Mac")) {
16       lnfName = "com.apple.mrj.swing.MacLookAndFeel";
17     } else if (e.getActionCommand( ).equals("Metal")) {
18       lnfName = "javax.swing.plaf.metal.MetalLookAndFeel";
19     } else if (e.getActionCommand( ).equals("Motif")) {
20       lnfName = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
21     } else if (e.getActionCommand( ).equals("Windows")) {
22       lnfName = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
23     } else {
24       System.err.println("Unrecognized L&F request action: " +
25         e.getActionCommand( ));
26       return;
27     }
28     try {
29       UIManager.setLookAndFeel(lnfName);//设置当前默认外观
30       SwingUtilities.updateComponentTreeUI(frame);//通过当前外观初始化其 UI
31     }
32     catch (UnsupportedLookAndFeelException ex1) {
33       System.err.println("Unsupported LookAndFeel: " + lnfName);
34     }
35     catch (ClassNotFoundException ex2) {
36       System.err.println("LookAndFeel class not found: " + lnfName);
37     }
38     catch (InstantiationException ex3) {
39       System.err.println("Could not load LookAndFeel: " + lnfName);
40     }
41     catch (IllegalAccessException ex4) {
42       System.err.println("Cannot use LookAndFeel: " + lnfName);
43     }
44   }
45 }

先编译LnFListener  再编译ToolbarFrame2  就可以了

效果图如下:

 

时间: 2024-10-25 20:14:06

初步学习Swing的相关文章

菜鸟初步学习android,遇到这个问题,求解答?

问题描述 菜鸟初步学习android,遇到这个问题,求解答? android.database.sqlite.SQLiteException: near ""value"": syntax error (code 1): while compiling: insert into person(_idnamephone) value(???) 解决方案 values你少了s 解决方案二: 基本语法错误 values 解决方案三: values 很明显的错误. 解决方案

json2.js的初步学习与了解_json

json2.js的初步学习与了解 1.)该js的下载地址是:http://www.json.org/json2.js 2.)在页面中引用该脚本:<script type="text/javascript" src="js/json2.js"></script> 3.)示例演示一: 复制代码 代码如下: //直接声明json数据结构 var myJSONObject = {"bindings": [ {"ircEv

Android贝塞尔曲线初步学习第二课 仿QQ未读消息气泡拖拽黏连效果

上一节初步了解了Android端的贝塞尔曲线,这一节就举个栗子练习一下,仿QQ未读消息气泡,是最经典的练习贝塞尔曲线的东东,效果如下 附上github源码地址:https://github.com/MonkeyMushroom/DragBubbleView 欢迎star~ 大体思路就是画两个圆,一个黏连小球固定在一个点上,一个气泡小球跟随手指的滑动改变坐标.随着两个圆间距越来越大,黏连小球半径越来越小.当间距小于一定值,松开手指气泡小球会恢复原来位置:当间距超过一定值之后,黏连小球消失,气泡小球

求:解决不明白编程中的代码含义问题和初步学习技巧

问题描述 大家好,我现在正开始学习JAVA,以前从来没有学习过电脑知识,只会玩游戏,现在发现编程里面的思考空间很大,我很喜欢,所以就选择了朋友们推荐的JAVA,请大家给我这样的情况简单的说一下学习方法,主要解决下不懂代码含义的问题,我用词霸也有很多翻译不了,大家给条明路啊,搞不好进今天你偶尔帮助过的小菜鸟,明日就是和你一路同行的同志,谢谢 解决方案 我的建议,先选择一个更容易并且更基础的语言去学,比如c,通过c的基本语法,你会懂得编程语言的基础.然后再去学java,他也属于c系列,所以基本语法的

CloudFoundry中EventMachine的初步学习

问题描述 CF中EventMachine的使用非常常见,但是对Ruby并发机制不太了解的童鞋可能对这一部分始终不大清楚.所以我们有必要对EM在CF中常见的使用方法进行一个说明,希望能够起到抛砖引玉的作用.不多说了,请移步: 解决方案 解决方案二:看看学习解决方案三:不错,值得看看.解决方案四:不错不错,味道好极了解决方案五:该回复于2012-10-21 12:59:03被版主删除解决方案六:跟楼主学习了解决方案七:可以!值得学习!解决方案八:好东西,学习了,谢谢解决方案九:好东西谢谢分享解决方案

CloudFoundry中NATS的初步学习

问题描述 NATS作为CloudFoundry的神经中枢,其作用不言而喻.在网络编程方面,NATS是使用EventMachine简化这部分工作的经典案例,同时EM也为NATS带来了高并发场景下优秀的处理能力.这里我们在对NATS源码进行学习的同时,对NATS的Sublist匹配结构做了一定的分析,并对EM在NATS中的使用方式作出了简短的说明.猛击:

JAVA学习Swing章节流布局管理器简单学习

package com.swing; import java.awt.Container; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.WindowConstants; /** * 1:流(FlowLayout)布局管理器是布局管理器中最基本的布局管理器,流布局管理器在整个容器中 * 的布局正如其名,像流一样从左到右摆放组件,直到占据了这

JAVA学习Swing章节按钮组件JButton的简单学习

package com.swing; import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.URL; import javax.swing.Icon; import javax.swing.ImageIcon;

JAVA学习Swing绝对局部简单学习

package com.swing; import java.awt.Container; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.WindowConstants; /** * 1:常用的布局管理器 * 在Swing中,每个组件在容器中都有一个具体的位置和大小,在容器中摆放各种组件时很难判断 * 其具体的位置和大小,布局管理器提供了Swing组件安排展示在容器中的方法,它提供了基本的 *