`

JAVA范例 十七)界面-Swing(一)

阅读更多

实例306 JFrame框架的应用   

 import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;

public class JFrame1 implements ActionListener {
public JFrame1() {
JFrame f = new JFrame("框架实例");
Container contentPane = f.getContentPane();
JButton b = new JButton("点击我可以创建一个新窗口");
b.addActionListener(this);
contentPane.add(b);
f.pack();
f.show();// 使JFrame变成可看见的(Visible)
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e) {
JFrame newf = new JFrame();// 产生一个没有标题的JFrame
newf.setSize(200, 200);
newf.show();
}
public static void main(String[] args) {
new JFrame1();
}
}

实例307 Border的使用

import java.awt.Color;
import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;

public class BorderTest {
public static void main(String[] args) {
JFrame f = new JFrame("Border");
Container content = f.getContentPane();
JButton b = new JButton();
b.setBorder(BorderFactory.createLineBorder(Color.blue, 10));//createLineBorder方法指定边界的颜色与宽度.
content.add(b);
f.setSize(200, 150);
f.show();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}


实例308 使用Icon组件显示一张图片
 

 import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ImageIconTest {
public static void main(String[] args) {
byte[] image = null;
JFrame f = new JFrame("ImageIconTest");
Container contentPane = f.getContentPane();
/*
* 在打开文件读文件的过程中可能会发生IOException,因此在下面的程序中用 try与catch将此区段包起来。
*/

try {
File file = new File(".\\icon\\kaixin.gif"); // 利用文件kaixin.gif建立一个File组件。
int size = (int) file.length(); // 并求出此文件的长度。
FileInputStream in = new FileInputStream(file);// 将文件组件放入FileInputStream中。
image = new byte[size];
in.read(image); // 将数据文件读进byte array中。
} catch (IOException e) {
System.err.println("File open falure:" + e.getMessage());
}
Icon icon = new ImageIcon(image);
JLabel label = new JLabel(icon, JLabel.CENTER);
contentPane.add(label);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}


实例309 Icon接口的应用
 

 import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class IconTest implements Icon {
int height = 60;// 定义一个整型常量
int width = 100;
public int getIconHeight() {
return height;
}
public int getIconWidth() {
return width;
}
public void paintIcon(Component c, Graphics g, int x, int y) {
g.drawRect(x, y, width, height);
g.fillRect(x, y, width, height);
g.setColor(Color.blue);
}
public static void main(String[] args) {
JFrame f = new JFrame("IconTest");// 设置框架的标题
Container contentPane = f.getContentPane();
Icon icon = new IconTest();
JLabel label = new JLabel(icon, JLabel.CENTER);
contentPane.add(label);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}


实例310 JLabel组件
  

import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class IconTest implements Icon {
int height = 60;// 定义一个整型常量
int width = 100;
public int getIconHeight() {
return height;
}
public int getIconWidth() {
return width;
}
public void paintIcon(Component c, Graphics g, int x, int y) {
g.drawRect(x, y, width, height);
g.fillRect(x, y, width, height);
g.setColor(Color.blue);
}
public static void main(String[] args) {
JFrame f = new JFrame("IconTest");// 设置框架的标题
Container contentPane = f.getContentPane();
Icon icon = new IconTest();
JLabel label = new JLabel(icon, JLabel.CENTER);
contentPane.add(label);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}


实例311 Icon应用到JLabel中
 

import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class JLabelDemo2 {
public static void main(String[] args) {
JFrame f = new JFrame("JLabelDemo2");
Container contentPane = f.getContentPane();
Icon icon = new ImageIcon(".\\icons\\hello.jpg");
JLabel label = new JLabel("Hello", icon, JLabel.CENTER);// 产生一个具有文字与Icon的JLabel组件,
// 并将此文字与Icon置于JLabel的中间。
label.setHorizontalTextPosition(JLabel.CENTER);// 将文字置于Icon的中间,若没有设置此项,默认
// 值为文字在Icon的右边。
label.setVerticalTextPosition(JLabel.TOP); // 将文字置于Icon的上面,若没有设置此项,默认值为中间排列
// 若你在此再加入一行label.setIconTextGap(10);将会加大文字"Hello"与Icon间的间距。
contentPane.add(label);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}


实例312 JButton的使用  

import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;

public class JButtonDemo1 {
public static void main(String[] args) {
JFrame f = new JFrame("JButtonDemo1");
Container contentPane = f.getContentPane();
JButton b = new JButton("按我", new ImageIcon(".\\icons\\hand.jpg"));
//如果没有设置文字的位置,系统默认值会将文字置于图形的右边中间位置。
b.setHorizontalTextPosition(JButton.CENTER);
b.setVerticalTextPosition(JButton.BOTTOM);
contentPane.add(b);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}


实例313 在JButton上设置快捷键  

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class JButtonDemo3 implements ActionListener {
public JButtonDemo3() {
JFrame f = new JFrame("JButtonDemo3");//创建一个JFrame对象,并设置JFrame的标题
Container contentPane = f.getContentPane();
JButton jb = new JButton("[o]打开新窗口");//初始化一个按钮
jb.setMnemonic('o'); //设置快捷键为o
jb.addActionListener(this); //添加监听器
contentPane.add(jb);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {//添加窗口监听器
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e) {
JFrame jf = new JFrame("新窗口"); //建立一个新的窗口,初始化标题为“新窗口”
JLabel label = new JLabel("这是新窗口");//定义一个标签
label.setHorizontalAlignment(JLabel.CENTER);
jf.getContentPane().add(label);
jf.setSize(100, 100);
jf.show();
}
public static void main(String[] args) {
new JButtonDemo3();
}
}


实例314 设置默认按钮
  

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class JButtonDemo4 {
public JButtonDemo4() {
JFrame f = new JFrame("JButtonDemo4");//创建一个JFrame对象,并设置它的标题为"JButtonDemo4"
Container contentPane = f.getContentPane();
contentPane.setLayout(new GridLayout(1, 2));
JButton b1 = new JButton("Open Text window");//定义一个按钮组件
JButton b2 = new JButton("Open Image window");
b1.setMnemonic('T');
b2.setMnemonic('I');
f.getRootPane().setDefaultButton(b1);
b1.addActionListener(//添加监听器
new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrame newf = new JFrame("新窗口");
JLabel label = new JLabel("这是文字窗口");
label.setHorizontalAlignment(JLabel.CENTER);
newf.getContentPane().add(label);
newf.setSize(200, 200);
newf.show();
}
});
b2.addActionListener(//添加监听器
new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrame newf = new JFrame("新窗口");//创建一个JFrame的对象
JLabel label = new JLabel(new ImageIcon(
".\\icons\\address1.jpg"));//定义一个标签,向这个标签中加入一张图片
label.setHorizontalAlignment(JLabel.CENTER);
newf.getContentPane().add(label);
newf.setSize(200, 200);//设置窗口的大小
newf.show();
}
});
//将这两个按钮添加到面板中
contentPane.add(b1);
contentPane.add(b2);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new JButtonDemo4();
}
}


实例315 使用JCheckBox组件
  

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class JCheckBoxDemo1 {
public static void main(String[] args) {
JFrame f = new JFrame("JCheckBoxDemo1"); // 创建一个JFrame实例对象
Container contentPane = f.getContentPane(); // 定义一个容器
contentPane.setLayout(new GridLayout(2, 1)); // 设置它的布局
JPanel p1 = new JPanel(); // 定义一个面板对象
p1.setLayout(new GridLayout(1, 3)); // 设置这个面板的布局
p1.setBorder(BorderFactory.createTitledBorder("你想要吃什么菜呢?"));
// 定义3个JCheckBox复选框选项
JCheckBox c1 = new JCheckBox("鱼香肉丝");
JCheckBox c2 = new JCheckBox("红烧鱼");
JCheckBox c3 = new JCheckBox("小葱拌豆腐");
p1.add(c1);
p1.add(c2);
p1.add(c3);
JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(2, 1));
p2.setBorder(BorderFactory.createTitledBorder("以下为JCheckBox的图形示范:"));
// 创建两个JCheckBox的图形对象
JCheckBox c4 = new JCheckBox("图形1", new ImageIcon(".\\icons\\x.jpg"));
JCheckBox c5 = new JCheckBox("图形2", new ImageIcon(".\\icons\\x.jpg"));
// 将这两个图形的对象添加到面板对象p2中
p2.add(c4);
p2.add(c5);
contentPane.add(p1);
contentPane.add(p2);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {// 添加一个窗口监听
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}


实例316 JCheckBox事件处理
  

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

//JCheckBox事件处理
public class JCheckBoxDemo2 implements ItemListener {
JFrame f = null;
JCheckBox c4 = null;
JCheckBox c5 = null;
JCheckBoxDemo2() {
f = new JFrame("JCheckBoxDemo2"); // 创建一个JFrame实例对象
Container contentPane = f.getContentPane(); // 定义一个容器
contentPane.setLayout(new GridLayout(2, 1)); // 设置窗口的布局
JPanel p1 = new JPanel(); // 创建一个面板对象p1
p1.setLayout(new GridLayout(1, 3));
p1.setBorder(BorderFactory.createTitledBorder("您最喜欢去哪旅游呢?"));
JCheckBox c1 = new JCheckBox("长白山");
JCheckBox c2 = new JCheckBox("北京");
JCheckBox c3 = new JCheckBox("吉林");
p1.add(c1);
p1.add(c2);
p1.add(c3);
JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(2, 1));
p2.setBorder(BorderFactory.createTitledBorder("您喜欢哪种程序语言,喜欢的请打勾:"));
c4 = new JCheckBox("JAVA", new ImageIcon(".\\icons\\x.jpg"));
c5 = new JCheckBox("C++", new ImageIcon(".\\icons\\x.jpg"));
c4.addItemListener(this);// 对JCheckBox的对象c4进行监听
c5.addItemListener(this);// 对JCheckBox的对象c5进行监听
p2.add(c4);
p2.add(c5);
contentPane.add(p1);
contentPane.add(p2);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {// 创建一个窗口监听器
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == e.SELECTED) {
if (e.getSource() == c4)
c4.setIcon(new ImageIcon(".\\icons\\r.jpg"));
if (e.getSource() == c5)
c5.setIcon(new ImageIcon(".\\icons\\r.jpg"));
} else {
if (e.getSource() == c4)
c4.setIcon(new ImageIcon(".\\icons\\x.jpg"));
if (e.getSource() == c5)
c5.setIcon(new ImageIcon(".\\icons\\x.jpg"));
}
}
public static void main(String args[]) {
new JCheckBoxDemo2();
}
}


实例317 JRadioButton的使用
  

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

//JRadioButton的使用
public class JRadioButtonDemo1 implements ItemListener {
JFrame f = null;
JRadioButton r4 = null;
JRadioButton r5 = null;
JRadioButtonDemo1() {
f = new JFrame("JRadioButtonDemo1"); // 创建一个JFrame的对象
Container contentPane = f.getContentPane(); // 创建一个容器
contentPane.setLayout(new GridLayout(2, 1)); // 设置这个窗口的布局
JPanel p1 = new JPanel(); // 创建一个面板对象p1
p1.setLayout(new GridLayout(1, 3)); // 设置布局管理器的格式
p1.setBorder(BorderFactory.createTitledBorder("你想要吃什么菜呢?"));
// 定义3个JRadioButton单选按钮
JRadioButton r1 = new JRadioButton("鱼香肉丝");
JRadioButton r2 = new JRadioButton("红烧鱼");
JRadioButton r3 = new JRadioButton("小葱拌豆腐");
p1.add(r1);
p1.add(r2);
p1.add(r3);
JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(2, 1));
// 设置2个JRadioButton单选按钮,并将这两个单选按钮使用图片代替
p2.setBorder(BorderFactory.createTitledBorder("您喜欢哪种程序语言? 喜欢的请打勾"));
r4 = new JRadioButton("JAVA", new ImageIcon(".\\icons\\x.jpg"));
r5 = new JRadioButton("C++", new ImageIcon(".\\icons\\x.jpg"));
r4.addItemListener(this);
r5.addItemListener(this);
p2.add(r4);
p2.add(r5);
contentPane.add(p1);
contentPane.add(p2);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {// 添加一个窗口监听器
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == e.SELECTED)// 判断当前的状态
{
if (e.getSource() == r4)
r4.setIcon(new ImageIcon(".\\icons\\r.jpg"));
if (e.getSource() == r5)
r5.setIcon(new ImageIcon(".\\icons\\r.jpg"));
} else {
if (e.getSource() == r4)
r4.setIcon(new ImageIcon(".\\icons\\x.jpg"));
if (e.getSource() == r5)
r5.setIcon(new ImageIcon(".\\icons\\x.jpg"));
}
}
public static void main(String args[]) {
new JRadioButtonDemo1();
}
}


实例318 JComboBox的使用
  

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.JComboBox;
import javax.swing.JFrame;

public class JComboBoxDemo1 {
public static void main(String[] args) {
JFrame f = new JFrame("JComboBoxDemo1");// 创建一个JFrame对象
Container contentPane = f.getContentPane(); // 定义一个容器
contentPane.setLayout(new GridLayout(1, 2));
String[] s = { "中国", "日本", "美国", "英国", "法国", "台湾", "澳洲", "韩国" };// 定义一个字符串数组,并将其初始化
Vector v = new Vector();
v.addElement("Nokia N80");
v.addElement("Nokia 8250");
v.addElement("Motorola v8088");
v.addElement("Motorola v3");
v.addElement("Panasonic 8850");
v.addElement("其它");
JComboBox combo1 = new JComboBox(s);// 定义一个JComboBox对象
combo1.addItem("中国");// 利用JComboBox类所提供的addItem()方法,加入一个项目到此JComboBox中。
combo1.setBorder(BorderFactory.createTitledBorder("你最喜欢到哪个国家玩呢?"));
JComboBox combo2 = new JComboBox(v);
combo2.setBorder(BorderFactory.createTitledBorder("你最喜欢哪一种手机呢?"));
contentPane.add(combo1);
contentPane.add(combo2);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {// 添加窗口监听器
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}


实例319 利用ComboModel构造JComboBox

import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.AbstractListModel;
import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;

//利用ComboModel构造JComboBox
public class JComboBoxDemo2 {
String[] s = { "中国", "日本", "美国", "英国", "法国", "台湾", "澳洲", "韩国" };// 定义一个字符串数组,并将其初始化
public JComboBoxDemo2() {
JFrame f = new JFrame("JComboBox2"); // 创建一个JFrame对象
Container contentPane = f.getContentPane();// 定义一个容器
ComboBoxModel mode = new UserDefineComboBoxModel();//创建一个ComboBoxModel对象
JComboBox combo = new JComboBox(mode);//定义一个JComboBox对象
combo.setBorder(BorderFactory.createTitledBorder("你最喜欢到哪个国家去玩?"));
contentPane.add(combo);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {//添加一个窗口监听器
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new JComboBoxDemo2();
}
class UserDefineComboBoxModel extends AbstractListModel implements
ComboBoxModel {
String item = null;
public Object getElementAt(int index) {
return s[index++];
}
//由于继承AbstractListModel抽象类。因此我们分别在程序中实作了getElementAt()与getSize()方法。
public int getSize() {
return s.length;
}
//由于我们实现了ComboBoxModel interface.因此我们必须在程序中实作setSelectedItem()与getSelectedItem()方法.
public void setSelectedItem(Object anItem) {
item = (String) anItem;
}
public Object getSelectedItem() {
return item;
}
}
}


实例320 DefaultComboBoxModel的使用  

 import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;

//DefaultComboBoxModel
public class JComboBoxDemo3 {
String[] s = { "中国", "日本", "美国", "英国", "法国", "台湾", "澳洲", "韩国" };
public JComboBoxDemo3() {
JFrame f = new JFrame("JComboBox3");// 创建一个JFrame对象
Container contentPane = f.getContentPane();// 定义一个Container容器
ComboBoxModel mode = new AModel();// 创建一个ComboBoxModel对象
JComboBox combo = new JComboBox(mode);
combo.setBorder(BorderFactory.createTitledBorder("您最喜欢到哪个国家玩呢?"));
contentPane.add(combo);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {// 添加一个窗口监听器
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new JComboBoxDemo3();
}
class AModel extends DefaultComboBoxModel {
AModel() {// 定义一个成员方法
for (int i = 0; i < s.length; i++)
addElement(s[i]);
}
}
}


实例321 建立有图像的JComboBox
  

import java.awt.Component;
import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;

//建立有图像的JComboBox
public class JComboBoxDemo4 {
String[] s = { "西瓜", "苹果", "草莓", "香蕉", "葡萄" };
public JComboBoxDemo4() {
JFrame f = new JFrame("JComboBox");// 创建一个JFrame的对象
Container contentPane = f.getContentPane();// 创建一个Container容器
JComboBox combo = new JComboBox(s);// 定义一个JComboBox对象
combo.setBorder(BorderFactory.createTitledBorder("你最喜欢吃哪些水果?"));
combo.setRenderer(new ACellRenderer());
combo.setMaximumRowCount(3);
contentPane.add(combo);// 将JComboBox对象combo放到入Container这个容器中
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {// 添加一个窗口监听器
System.exit(0);
}
});
}
public static void main(String[] args) {
new JComboBoxDemo4();
}
}
class ACellRenderer extends JLabel implements ListCellRenderer {
ACellRenderer() {// 创建一个成员方法
setOpaque(true);
}
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
if (value != null) {
setText(value.toString());
setIcon(new ImageIcon(".\\icons\\fruit" + (index + 1) + ".jpg"));
}
if (isSelected) {// 判断这个复选框是否被选中
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
} else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
return this;
}
}


实例322 建立可自行输入的JComboBox
 

 import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;

//建立可自行输入的JComboBox
public class JComboBoxDemo5 {
String[] fontsize = { "12", "14", "16", "18", "20", "22", "24", "26" };
String defaultMessage = "请选择或直接输入文字大小!";
public JComboBoxDemo5() {
JFrame f = new JFrame("JComboBox5");// 创建一个JFrame对象
Container contentPane = f.getContentPane();
JComboBox combo = new JComboBox(fontsize);
combo.setBorder(BorderFactory.createTitledBorder("请选择你要的文字大小"));
combo.setEditable(true);// 将JComboBox设成是可编辑的.
ComboBoxEditor editor = combo.getEditor();// getEditor()方法返回ComboBoxEditor对象,如果你查看手册,你就会发现。
combo.configureEditor(editor, defaultMessage);
contentPane.add(combo);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {// 添加一个窗口监听
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String args[]) {
new JComboBoxDemo5();
}
}


实例323 JComboBox的事件处理

import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class JComboBoxDemo6 implements ItemListener, ActionListener {
String[] fontsize = { "12", "14", "16", "18", "20", "22", "24", "26", "28" };
String defaultMessage = "请选择或直接输入文字大小!";
Font font = null; // 定义一个Font对象
JComboBox combo = null;// 定义一个JComboBox对象
JLabel label = null; // 定义一个JLabel对象
public JComboBoxDemo6() {
JFrame f = new JFrame("JComboBox");
Container contentPane = f.getContentPane();
contentPane.setLayout(new GridLayout(2, 1));
label = new JLabel("Swing", JLabel.CENTER);
font = new Font("SansSerif", Font.PLAIN, 12);
label.setFont(font);
combo = new JComboBox(fontsize);
combo.setBorder(BorderFactory.createTitledBorder("请选择你要的文字大小:"));
combo.setEditable(true); // 设置状态为可编辑
ComboBoxEditor editor = combo.getEditor();
combo.configureEditor(editor, defaultMessage);
combo.addItemListener(this); // 添加文本监听
combo.addActionListener(this);// 添加事件监听
contentPane.add(label);
contentPane.add(combo);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new JComboBoxDemo6();
}
public void actionPerformed(ActionEvent e) {
boolean isaddItem = true;
int fontsize = 0;
String tmp = (String) combo.getSelectedItem();
// 判断用户所输入的项目是否有重复,若有重复则不增加到JComboBox中。
try {
fontsize = Integer.parseInt(tmp);
for (int i = 0; i < combo.getItemCount(); i++) {
if (combo.getItemAt(i).equals(tmp)) {
isaddItem = false;
break;
}
}
if (isaddItem) {
combo.insertItemAt(tmp, 0);// 插入项目tmp到0索引位置(第一列中).
}
font = new Font("SansSerif", Font.PLAIN, fontsize);
label.setFont(font);
} catch (NumberFormatException ne) {
combo.getEditor().setItem("你输入的值不是整数值,请重新输入!");
}
}
public void itemStateChanged(ItemEvent e) {// ItemListener界面只有itemStateChanged()一个方法,在此实作它。
if (e.getStateChange() == ItemEvent.SELECTED) {// 当用户的选择改变时,则在JLabel上会显示出Swing目前字形大小信息.
int fontsize = 0;
try {
fontsize = Integer.parseInt((String) e.getItem());
label.setText("Swing 目前字形大小:" + fontsize);
} catch (NumberFormatException ne) {// 若所输入的值不是整数,则不作任何的操作.
}
}
}
}


实例324 JTextField组件的使用  
 

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class JTextFieldDemo {
public static void main(String args[]) {
JFrame f = new JFrame("JTextFieldDemo");
Container contentPane = f.getContentPane();// 返回窗体容器。
contentPane.setLayout(new BorderLayout()); // 设置窗体容器布局。
JPanel p1 = new JPanel(); // 声明面板容器。
p1.setLayout(new GridLayout(3, 2)); // 设置面板布局。
p1.setBorder(BorderFactory.createTitledBorder("请输入你的注册信息"));
// 设置面板边界。
JLabel lable1 = new JLabel("姓名:", JLabel.CENTER); // 创建标签。
JLabel lable2 = new JLabel("性别:", JLabel.CENTER);
JLabel lable3 = new JLabel("年龄:", JLabel.CENTER);
JTextField t1 = new JTextField(10); // 创建单行文本框,其长度为10。
JTextField t2 = new JTextField(10);
JTextField t3 = new JTextField(10);
p1.add(lable1); // 将标签及单行文本框依次添加到面板中。
p1.add(t1);
p1.add(lable2);
p1.add(t2);
p1.add(lable3);
p1.add(t3);
contentPane.add(p1);
f.setSize(500, 200);
f.setVisible(true);
f.addWindowListener(new WindowAdapter() // 关闭事件。
{
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}


实例325 使用JTextArea组件

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class JTextAreaDemo {
public static void main(String args[]) {
JFrame f = new JFrame("JTextAreaDemo");
f.getContentPane(); // 返回窗体容器。
JTextArea textArea = new JTextArea(); // 创建文本域。
JScrollPane pane = new JScrollPane(textArea);
// 将文本域添加到滚动面板中。
f.add(pane);
f.setSize(250, 150);
f.setVisible(true);
}
}
分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    Java范例开发大全

    《Java范例开发大全》共22章,内容涉及Java开发环境的搭建、Java基础类型与运算符、条件控制语句、异常处理、数组、字符串、输入输出流、面向对象及其四大特征、内部类与接口、Java常用类、集合、多线程编程、Java...

    Swing使用范例.rar

    学习java Swing 的范例,是学习java图形使用界面的入门级知识,代码比较简单

    Java Swing 第三版 英文

    Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件...

    java范例开发大全(pdf&源码)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    JAVA版Swing星际争霸游戏源代码

    星际争霸的JAVA版所有源代码。基于Swing的界面控制编程,以及一些用户交互控制,鼠标拖放,屏幕滚动,游戏角色创建与控制等方面的应用,对学习JAVA编程是绝佳的参考范例。

    java范例开发大全源代码

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12 ...

    java范例开发大全

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    用java写的电子词典程序(JAVA+MySQL)

    很经典的一个java实例,包括了swing界面设计,java访问和操作数据库的各种方法,是学习java的经典范例!

    Java范例开发大全 (源程序)

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12  实例5...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    经典:Java2范例入门与提高

    Java2范例入门与提高 《Java2范例入门与提高》 一、使用说明 本书所附光盘的内容包含了开发实例的所有程序源码,所有程序源码都是在Java2上编译通过的。要运行本光盘上的实例,用户需要安装Java编译环境,请将光盘...

    Java范例开发大全(全书源程序)

    Java范例开发大全(全书源程序),目录如下: 第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    《Java2范例入门与提高》所有实例源码

    《Java2范例入门与提高》的内容包含了开发实例的所有程序源码,所有程序源码都是在Java2上编译通过的。要运行本光盘上的实例,用户需要安装Java编译环境,并去掉其只读属性,除非特殊说明,一般经编译即可直接运行。...

    Java 2 范例入门与提高

    第6章 java图形用户界面 6.1 HelloWorldSwing 6.2 按钮计数器 6.3 Swing按钮 6.4 温度转换器 6.5 HtmlDemo 6.6 投票器 6.7 TextSamplerDemo 6.8 Swing菜单 6.9 文件对话框 6.10 月相 6.11 单位转换器 6.12 Swing动画...

    java源码包4

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    java源码包3

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

Global site tag (gtag.js) - Google Analytics