初步学习Swing-阿里云开发者社区

开发者社区> 宝珠> 正文

初步学习Swing

简介: 一直就想学习java的桌面编程,可惜直到现在因为是在unix上的原因并不需要java程序有界面,不过自己还是想好好学习学习。
+关注继续查看

一直就想学习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  就可以了

效果图如下:

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
猪八戒版骨架记忆法|学习笔记
快速学习猪八戒版骨架记忆法
31 0
一步一步学习SignalR进行实时通信_4_Hub
原文:一步一步学习SignalR进行实时通信_4_Hub 一步一步学习SignalR进行实时通信\_4_Hub SignalR 一步一步学习SignalR进行实时通信_4_Hub 前言 创建Hub 配置Hub 创建Hubs服务 详细代码 代码解析 效果展示 结束语 参考文献 前言 之前我们介绍了SignalR有2级抽象,前2篇文章我们讲的是较底层PersistentConnection,从这篇文章开始我们学习下较高一层的Hub。
994 0
初步学习Swing
一直就想学习java的桌面编程,可惜直到现在因为是在unix上的原因并不需要java程序有界面,不过自己还是想好好学习学习。
672 0
SDL2.0 学习笔记-1 windows下的第一个测试程序
SDL全称是Simple DirectMedia Layer,是一个开源的、跨平台(win32,linux,mac)的多媒体开发c语言库。 官方网站 http://www.libsdl.org/   第一步,下载源文件 首先去这个页面http://www.libsdl.org/tmp/download-2.0.php下载相关资源文件,直接下载SDL2-2.0.0.zip 来自己编译,或者按自己的系统下载相关的开发资源(bin和include)。
1127 0
C# window 服务的学习
1   C#Windows服务程序之添加安装程序图解 http://developer.51cto.com/art/200908/144060.htm 2 C#Windows服务程序的快速开发 http://developer.
598 0
我想学Ruby —— Ruby学习资源汇总
iwanttolearnruby 这个站点搜集了一些不错的 Ruby 学习资源,值得各位 Ruby爱好者参考。
12 0
Git与GitHub学习笔记(四)合并远程分支
在这里的前提: 1、你已经fork 源作者的项目到你自己的仓库了 2、git clone 自己仓库fork的项目,注意地址,这里是自己的账号下的地址,而不是源作者的项目地址哦 3、在本地修改代码,git push origin master 提交到自己的主分支(自定义别的分支),  提交一个新的...
833 0
+关注
宝珠
说实话不如做实事
243
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载