1. 示例1

public class Main {

	JFrame f = new JFrame();
Icon okIcon = new ImageIcon("/home/test/start.png"); //图标文件
JButton ok = new JButton("OK", okIcon); JRadioButton male = new JRadioButton("man", true); //单选按键 group
JRadioButton female = new JRadioButton("woman", false);
ButtonGroup bg = new ButtonGroup(); JCheckBox married = new JCheckBox("married ?", false); String [] colors = new String[]{"red", "green", "blue"};
JComboBox<String> colorChooser = new JComboBox<String>(colors); //下拉选单,直接添加string[]
JList<String> colorList = new JList<String>(colors); JTextArea ta = new JTextArea(8, 20);
JTextField name = new JTextField(40);
JMenuBar mb = new JMenuBar(); //菜单栏
JMenu file = new JMenu("file"); //file菜单
JMenu edit = new JMenu("edit");
Icon newIcon = new ImageIcon("/home/test/start.png");
JMenuItem newItem = new JMenuItem("New", newIcon);
Icon saveIcon = new ImageIcon("/home/test/start.png");
JMenuItem saveItem = new JMenuItem("Save", saveIcon);
JMenuItem exitItem = new JMenuItem("Exit", newIcon);
JCheckBoxMenuItem autoWrap = new JCheckBoxMenuItem("AutoWrap");
JPopupMenu pop = new JPopupMenu();
ButtonGroup flavorGroup = new ButtonGroup();
JRadioButtonMenuItem metalItem = new JRadioButtonMenuItem("Metal style", true);
JRadioButtonMenuItem windowsItem = new JRadioButtonMenuItem("Windows style"); public void init()
{
JPanel bottom = new JPanel();
bottom.add(name);
bottom.add(ok);
f.add(bottom, BorderLayout.SOUTH); JPanel checkPanel = new JPanel();
checkPanel.add(colorChooser);
bg.add(male);
bg.add(female);
checkPanel.add(male);
checkPanel.add(female);
checkPanel.add(married);
Box topLeft = Box.createVerticalBox();
JScrollPane taJsp = new JScrollPane(ta);
topLeft.add(taJsp);
topLeft.add(checkPanel); Box top = Box.createHorizontalBox();
top.add(topLeft);
top.add(colorList);
f.add(top); newItem.setAccelerator(KeyStroke.getKeyStroke('N', InputEvent.CTRL_MASK)); //添加快捷键
newItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ta.append("clicked newItem");
}
});
file.add(newItem);
file.add(saveItem);
file.add(exitItem);
edit.add(autoWrap);
edit.setToolTipText("autowrap");
edit.addSeparator();
mb.add(file);
mb.add(edit);
f.setJMenuBar(mb); //设置菜单栏 pop.add(metalItem); //可将这两个item添加到flavorGroup 形成单选
pop.add(windowsItem);
ActionListener flavorListener = new ActionListener() { // 右键单击选项事件
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ta.append(e.getActionCommand());
}
};
metalItem.addActionListener(flavorListener);
windowsItem.addActionListener(flavorListener);
ta.setComponentPopupMenu(pop); //设置右键菜单 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置X窗口退出
f.pack();
f.setVisible(true);
} public static void main(String[] args) {
// TODO Auto-generated method stub
new Main().init();
}
}

2. 如上, name输入框中输入后 按Ok Button发送到 ta 中去。。。。为这个动作添加快捷键

Action sendMsg = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ta.append(name.getText());
}
};
ok.addActionListener(sendMsg); //按键添加监听
name.getInputMap().put(KeyStroke.getKeyStroke('\n', java.awt.event.InputEvent.CTRL_MASK ),
"send"); //将Ctrl+Enter 键和"send"关联
name.getActionMap().put("send", sendMsg); //将"send"和 sendMsg Action 关联

3. JColorChooser 和 JFileChooser 。

4. 弹出提示框 showMessageDialog  showConfirmDialog  showInputDialog

public class Main {

	JFrame f = new JFrame();
JOptionPane option = new JOptionPane();
JButton bt1 = new JButton("bt1");
JButton bt2 = new JButton("bt2");
JButton bt3 = new JButton("bt3");
JButton bt4 = new JButton("bt4"); Icon icon = new ImageIcon("/home/test/start.png"); public void init()
{
bt1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) { //消息框
// TODO Auto-generated method stub
option.showMessageDialog(f, "show message", "test", JOptionPane.WARNING_MESSAGE, null);
// Message Type: ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, PLAIN_MESSAGE
}
}); bt2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) { //确认框
// TODO Auto-generated method stub
int chose = JOptionPane.showConfirmDialog(f, "show message", "test", JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, icon);
//Option Type: DEFAULT_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION, OK_CANCEL_OPTION
System.out.println(chose);
}
}); bt3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) { //输入框
// TODO Auto-generated method stub
String str = JOptionPane.showInputDialog(f, "message", "title", JOptionPane.WARNING_MESSAGE);
System.out.println(str);
}
}); f.add(bt1, BorderLayout.SOUTH);
f.add(bt2, BorderLayout.NORTH);
f.add(bt3, BorderLayout.EAST);
f.add(bt4, BorderLayout.WEST); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
} public static void main(String[] args) {
// TODO Auto-generated method stub
new Main().init();
}
}

5. JSplitPane 分割布局

public class Main {

	JFrame f = new JFrame();
JLabel bookList = new JLabel("bookList");
JLabel bookCover = new JLabel("bookCover");
JLabel bookDesc = new JLabel("bookDesc"); public void init()
{
bookList.setPreferredSize(new Dimension(150, 300));
bookCover.setPreferredSize(new Dimension(300, 150));
bookDesc.setPreferredSize(new Dimension(300, 150)); JSplitPane left = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true,
bookCover, new JScrollPane(bookDesc)); //垂直分割
left.setOneTouchExpandable(true); //一处即展 功能
left.resetToPreferredSizes(); //
//left.setDividerSize(50); //设置分隔条大小
JSplitPane content = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
left, bookList); f.add(content);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
} public static void main(String[] args) {
// TODO Auto-generated method stub
new Main().init();
}
}

6. JTabbedPane 

 

public class Main {

	JFrame f = new JFrame();
JLabel bookList = new JLabel("bookList");
JLabel bookCover = new JLabel("bookCover");
JLabel bookDesc = new JLabel("bookDesc");
Icon icon = new ImageIcon("/home/test/start.png");
JTabbedPane tab = new JTabbedPane(JTabbedPane.LEFT, JTabbedPane.WRAP_TAB_LAYOUT); //定义tab,靠左 及 Tab排列策越 public void init()
{
bookList.setPreferredSize(new Dimension(150, 300));
bookCover.setPreferredSize(new Dimension(300, 150));
bookDesc.setPreferredSize(new Dimension(300, 150)); tab.addTab("title", icon, bookList, "bookList"); //添加Tab
tab.addTab("title", icon, bookCover, "bookCover");
tab.addTab("title", icon, bookDesc, "bookDesc");
tab.addChangeListener(new ChangeListener() { //Tab事件监听
@Override
public void stateChanged(ChangeEvent e) {
// TODO Auto-generated method stub
System.out.println(tab.getSelectedIndex());
}
}); f.add(tab);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
} public static void main(String[] args) {
// TODO Auto-generated method stub
new Main().init();
}
}

7. LayeredPane

8. JDesktopPane   JInternalFrame

public class Main {
JFrame f = new JFrame();
JDesktopPane desktop = new JDesktopPane(); public void init()
{
JInternalFrame iframe1 = new JInternalFrame("iframe1", true, true, true, true);
iframe1.reshape(20, 20, 300, 400);
iframe1.show();
JInternalFrame iframe2 = new JInternalFrame("iframe2", true, true, true, true);
iframe2.reshape(20, 20, 300, 400);
iframe2.show();
desktop.setPreferredSize(new Dimension(800, 600));
desktop.add(iframe1);
desktop.add(iframe2); f.add(desktop);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
} public static void main(String[] args) {
// TODO Auto-generated method stub
new Main().init();
}
}

9. 进度条

public class Main {

	JFrame frame = new JFrame("Test ProgressBar");
JProgressBar bar = new JProgressBar(JProgressBar.VERTICAL );
JCheckBox indeterminate = new JCheckBox("indeterminate");
JCheckBox noBorder = new JCheckBox("noBorder");
JCheckBox dialogCheck = new JCheckBox("dialogCheck");
public void init()
{
final ProgressMonitor dialog = new ProgressMonitor(frame, "ProgressMonitor", "complete", 0, 100);
Box box = new Box(BoxLayout.Y_AXIS);
box.add(indeterminate);
box.add(noBorder);
box.add(dialogCheck);
frame.setLayout(new FlowLayout()); frame.add(box);
frame.add(bar); bar.setMinimum(0);
bar.setMaximum(100); bar.setStringPainted(true);
noBorder.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
bar.setBorderPainted(!noBorder.isSelected());
}
});
indeterminate.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
bar.setIndeterminate(indeterminate.isSelected());
bar.setStringPainted(!indeterminate.isSelected());
}
}); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true); for (int i = 0 ; i <= 100 ; i++)
{ bar.setValue(i);
dialog.setProgress(i);
try
{
Thread.sleep(100);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
new Main().init();
}
}

Java -- Swing 组件使用的更多相关文章

  1. java Swing组件和事件处理(二)

    1.BoxLayout类可以创建一个布局对象,成为盒式布局,BoxLayout在javax.Swing  border 包中,java.swing 包提供一个Box类,该类也是一个类,创建的容器称作一 ...

  2. JAVA Swing 组件演示***

    下面是Swing组件的演示: package a_swing; import java.awt.BorderLayout; import java.awt.Color; import java.awt ...

  3. java Swing组件随着窗口拖动等比移动或等比放大

    实现原理很简单, 1清空布局(使用绝对布局) 2添加监听器(监听窗口是否被拖动) 3在监听器里面动态调整 组件的位置 效果如下: 拖动之后效果: 代码实现: import java.awt.Event ...

  4. java swing组件的一些基本属性

    JLabel get/setText(): 获取/设置标签的文本. get/seticon(): 获取/设置标签的图片. get/setHorizontalAlignment(): 获取/设置文本的水 ...

  5. java Swing组件和事件处理

    1.常见的容器 JComponent是 Container 的子类,中间容器必须添加到底层容器中才能够发挥作用, JPanel 面板 :使用jPanel 创建一个面板,再通过添加组件到该面板上面,JP ...

  6. Java swing: 实现ActionListener监听器的三种途径

    Swing是目前Java中不可缺少的窗口工具组,是用户建立图形化用户界面(GUI)程序的 强大工具.Java Swing组件自动产生各种事件来响应用户行为.如当用户点击按钮或选择菜单项目时,Swing ...

  7. java中经常使用的Swing组件总结

    1.按钮(Jbutton) Swing中的按钮是Jbutton,它是javax.swing.AbstracButton类的子类,swing中的按钮可以显示图像,并且可以将按钮设置为窗口的默认图标,而且 ...

  8. Java AWT组件开发和Swing界面编程

    一.AWT组件开发 1.AWT AWT是抽象窗口工具箱的缩写,它为编写图形用户界面提供了用户接口,通过这个接口就可以继承很多方法,省去了很多工作.AWT还能使应用程序更好地同用户进行交互. AWT中的 ...

  9. learning java swing 基本组件用法

    import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event ...

随机推荐

  1. php序列化&反序列化坑

    一: 在php中如果我们统一编码是没有什么问题了,但是很多朋友会发现一个问题就是utf8和gbk编码中返回的值会有所区别: php 在utf8和gbk编码下使用serialize和unserializ ...

  2. secureCrt Linux 文件传输

    1.在secureCRT终端下输入rz命令,查看Linux是否安装rz文件传输服务 如果提示未安装则先安装rz服务:安装命令:   apt-get install lrzsz 2.进入要上传的目的文件 ...

  3. Monkey源代码分析之事件源

    上一篇文章<Monkey源代码分析之执行流程>给出了monkey执行的整个流程.让我们有一个概貌,那么往后的文章我们会尝试进一步的阐述相关的一些知识点. 这里先把整个monkey类的结构图 ...

  4. 正负小数点后两位浮点数--jquery

    背景:项目中需要做个对两位小数点的正负浮点数的处理, 要求:非数字或者.字符自动清除,并对.12自动修补.前的0 原理:在输入框中加入两个事件,keyup与blur,keyup处理字符串中非要求的字符 ...

  5. 浅谈Java数据结构和算法

    今天的突然看集合底层的时候发现了好多算法和数据结构.再次就比较一下和汇总一下. 数据结构分类:线性结构和非线性结构 问题一: 什么是线性和非线性: 我个人的理解是:数据结构中线性结构指的是数据元素之间 ...

  6. 动态对象创建(二)重载new和delete

    动态对象创建(二)重载new和delete 前言 上文我简单介绍了一下动态对象创建的方法,这一篇文章的内容主要是对重载new和delete做一些讲解,也希望能够得到博友们的指点,在这里谢过大家. 通常 ...

  7. Java线程面试题:设计四个线程,其中两个线程每次对 j 加 1,另外两个每次对 j 减 1,程序如下。

    package thread; /** * Java线程面试题 * @author zhongfg * @date 2015-06-16 */ public class ThreadInterview ...

  8. Pollard-Rho大整数拆分模板

    随机拆分,简直机智. 关于过程可以看http://wenku.baidu.com/link?url=JPlP8watmyGVDdjgiLpcytC0lazh4Leg3s53WIx1_Pp_Y6DJTC ...

  9. 【BZOJ3316】JC loves Mkk 分数规划+单调队列

    [BZOJ3316]JC loves Mkk Description Input 第1行,包含三个整数.n,L,R.第2行n个数,代表a[1..n]. Output 仅1行,表示询问答案.如果答案是整 ...

  10. 【BZOJ4016】[FJOI2014]最短路径树问题 最短路径树+点分治

    [BZOJ4016][FJOI2014]最短路径树问题 Description 给一个包含n个点,m条边的无向连通图.从顶点1出发,往其余所有点分别走一次并返回. 往某一个点走时,选择总长度最短的路径 ...