`

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...

    BlackJack-GUI-java-swing-:使用MVC范例进行有趣的练习

    在本项目"BlackJack-GUI-java-swing-"中,开发者使用了Java Swing库来创建一个图形用户界面(GUI)的BlackJack游戏,并遵循了模型-视图-控制器(MVC)设计模式。这是一个很好的实践,因为MVC模式有助于将业务逻辑、...

    Java范例开发大全代码

    10. **JavaFX和Swing**:用于构建图形用户界面(GUI)的应用程序框架。 11. **Java 8及以后的新特性**:Lambda表达式、Stream API、Optional类、日期和时间API的改进等。 这个压缩包中的每个子文件名都可能对应一...

    java范例开发大全

    《Java范例开发大全》是一本全面覆盖Java编程的实用指南,旨在帮助初学者和有经验的开发者深入理解和掌握Java语言。这本书包含了从基础到高级的各类编程概念和技巧,通过丰富的实例代码来阐述理论知识,使学习过程...

    Swing使用范例.rar

    在这个"Swing使用范例.rar"压缩包中,我们可以预见到包含了一系列的Java代码示例,这些示例将帮助初学者快速理解并掌握Swing的基本用法。Swing 提供了许多组件,如按钮(Button)、文本框(TextField)、标签(Label)、...

    java开发范例大全

    9. **GUI编程**:Java Swing和JavaFX库可用于创建图形用户界面。通过实例,你可以学习如何创建窗口、按钮、文本框等组件,并实现事件监听。 10. **数据库操作**:Java JDBC(Java Database Connectivity)允许与...

    JAVA 范例开发大全 源代码

    《JAVA 范例开发大全 源代码》是一本为Java开发者提供的宝贵资源,它包含了近1000个可运行的Java类,涵盖了Java编程的各个方面。这些源代码实例旨在帮助读者深入理解Java语言的特性和用法,通过实践来提升编程技能。...

    JavaSwing桌面程序开发

    Java Swing 是Java平台上的一个库,它提供了丰富的用户界面组件,用于构建桌面应用程序。Swing 提供了一套轻量级的UI组件,可以创建美观且功能丰富的图形用户界面(GUI)。本章将详细介绍如何使用Swing进行桌面程序...

    Java范例开发大全(光盘源码)

    《Java范例开发大全》是一本专为Java初学者设计的教材,旨在通过丰富的实例帮助读者深入理解并掌握Java编程语言。这本书的核心理念是实践出真知,通过大量的代码示例来阐述Java语言的关键概念和技术,使学习者能够...

    Java范例开发大全全书代码

    《Java范例开发大全》是一本深度探讨Java编程实践的书籍,其提供的全书源代码压缩包涵盖了370多个实例,旨在帮助开发者全面理解并掌握Java语言的应用。这些实例覆盖了Java语言的基础到高级特性,是学习和提升Java...

    《Java通用范例开发金典》

    9. **GUI设计**:Java Swing和JavaFX库提供了丰富的组件和布局管理器,用于构建图形用户界面,实现交互式应用。 10. **反射**:Java反射机制允许在运行时动态地获取类的信息并操作其内部属性和方法,提高了程序的...

    Java灵感编程范例源代码81-101

    Java灵感编程范例源代码81-101是一系列基于Java编程语言的示例代码,旨在激发开发者们的创新思维和提升编程技能。这个压缩包包含从第81个到第101个示例,涵盖了多种Java编程的实用技巧和经典算法。通过这些源代码,...

    java课程设计--计算器(带源码).pdf

    参考书中提到的《Java范例大全》和《Java程序设计教程》可以提供更深入的理论知识和实例,帮助理解如何在实际项目中应用Java编程技术。此外,使用JDK(Java Development Kit)或JCreator作为开发环境,可以提供编写...

    Java范例开发大全源程序

    "Java范例开发大全源程序"无疑是一个丰富的资源库,提供了大量的示例代码,帮助开发者深入理解Java语言的各种特性和用法。这个资源包可能包含了从基础语法到高级特性的全方位示例,旨在促进实践操作和学习。 首先,...

    [JAVA编程模式与范例].zip

    - GUI编程:使用Java Swing或JavaFX构建图形用户界面,理解事件处理模型。 4. **Java标准库与API**: - 学习并理解Java基础库,如集合框架、IO流、日期时间API(java.time包)、反射机制、注解等。 - 探索Java并...

    java课程设计报告范例-计算器.doc

    - 用户界面设计:界面由Swing或AWT组件构建,包括一个主面板,采用网格布局管理器,将按钮以特定的排列方式分布,模拟真实计算器的按键布局。 - 类设计:可能包括一个主类(可能是`Calculator`),负责整体逻辑;...

    java范例程序 中文版

    Java还包含了丰富的标准库,如用于网络编程的Socket和ServerSocket,用于数据库连接的JDBC,用于XML处理的DOM和SAX解析器,以及用于图形用户界面(GUI)的Swing和JavaFX等。 总的来说,“Java范例程序”这个资源...

    《java完全自学手册》范例程序代码册.rar

    7. **GUI编程**:Java的Swing和JavaFX库可用于创建图形用户界面。书中可能包含JButton、JFrame、JLabel等组件的使用,以及事件监听器的实现。 8. **数据库连接**:Java提供JDBC(Java Database Connectivity)接口...

Global site tag (gtag.js) - Google Analytics