初步学习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  就可以了

效果图如下:

 
目录
相关文章
|
4月前
|
算法 Java 开发工具
Java Swing五子棋项目
Java Swing五子棋项目
|
8月前
|
数据可视化 Java 容器
Swing程序设计(2)JFrame窗体
Swing程序设计(2)JFrame窗体
74 0
|
9月前
|
存储 Java 图形学
【Java Swing】重绘基本实现
【Java Swing】重绘基本实现
47 0
|
9月前
|
算法 Java 数据库连接
JAVA的swing技术到底实用不实用?
JAVA的swing技术到底实用不实用? CSDN 转过来的,所以格式与内容有些许错误请见谅
|
Java 开发工具 容器
|
数据安全/隐私保护
Swing组件(上)
Swing所有组件都继承自JComponent,主要有文本处理、按钮、标签、列表、面板、组合框、滚动条、滚动面板、菜单、表格和树等组件。
Swing组件(上)
|
设计模式 前端开发
Swing设计一个下载器
1、package DownLoader.ui 中的类:APPMain、DownLoaderJFrame、MyProgressBar 2、package DownLoader.utils 中类:ClimbNetPage、DownLoader、DownLoaderTask、ImageUtil、Speeder 3、package DownLoaderTableMode 中的类:DownLoaderTableMode_Observer 4、package MyDataBasic 中的类TestDataBasic
158 0
|
Java 索引 容器
Java图形化:Swing表格的使用
利用JTable类直接创建表格 创建表格: 在JTable类中除了默认的构造方法之外,还提供了利用指定表格列名数组和表格数据数组创建表格的构造方法,如下: JTable(Object[][] rowData,Object[] columnNames) rowData就是表格的数据数组 columnNames就是表格的列名数组。
1636 0
|
存储 Java 调度
Java Swing JTable(下)
Java Swing JTable(下)
353 0
Java Swing JTable(下)