您的位置:首页 > 编程语言 > Java开发

测试java.swing包提供的轻量级组件的例子

2014-04-24 16:34 351 查看
1. 测试java.swing包提供的轻量级组件的例子(以java Application方式运行)

TestSwing.java文件

源代码如下:

package SampleGUI;

import java.awt.*;

import java.util.*;

import javax.swing.*;

import javax.swing.tree.*;

import javax.swing.table.*;

import javax.swing.ButtonGroup;

public class TestSwing extends JFrame{

JLabel lblName = new JLabel("姓名: ");

JLabel lblNumber = new JLabel("身份证号");

JLabel lblSex = new JLabel("性别 ");

JLabel lblJob = new JLabel("职业");

JLabel lblText = new JLabel("个性化宣言");

JTextField tfName = new JTextField(23);

JTextField tfNumber = new JTextField(20);

JTextArea taText = new JTextArea(5, 20);

JRadioButton jMale = new JRadioButton("男");

JRadioButton jFemale = new JRadioButton("女");

ButtonGroup group = new ButtonGroup();

JComboBox combJob = new JComboBox();

JButton btnOK = new JButton("确定");

JButton btnDisplay = new JButton("取消");

JTable tblInf = new JTable();

DefaultTableModel dtm = new DefaultTableModel();

JTree tree = new JTree();

JPanel p1 = new JPanel();

JPanel p2 = new JPanel();

JPanel p3 = new JPanel();

JPanel p4 = new JPanel();

JPanel p5 = new JPanel();

JPanel p6 = new JPanel();

JPanel p7 = new JPanel(new BorderLayout());

JPanel p8 = new JPanel();

JPanel p9 = new JPanel(new BorderLayout());

public TestSwing(){

group.add(jMale);

group.add(jFemale);

combJob.addItem("计算机");

combJob.addItem("医生");

combJob.addItem("教师");

combJob.addItem("军队");

p1.add(lblName);

p1.add(tfName);

p2.add(lblNumber);

p2.add(tfNumber);

p3.add(lblSex);

p3.add(jMale);

p3.add(jFemale);

p4.add(lblJob);

p4.add(combJob);

p5.add(p3);

p5.add(p4);

p6.setLayout(new BorderLayout());

p6.add(p1, BorderLayout.NORTH);

p6.add(p2, BorderLayout.CENTER);

p6.add(p5, BorderLayout.SOUTH);

p7.add(lblText, BorderLayout.NORTH);

p7.add(taText, BorderLayout.CENTER);

p8.setLayout(new FlowLayout(FlowLayout.CENTER,30, 10));

p8.add(btnOK);

p8.add(btnDisplay);

p9.add(p6, BorderLayout.NORTH);

p9.add(p7, BorderLayout.CENTER);

p9.add(p8, BorderLayout.SOUTH);

add(p9);

setTable();

setTree();

getContentPane().add(p9, BorderLayout.NORTH);

JScrollPane s = new JScrollPane(tblInf);

getContentPane().add(s, BorderLayout.CENTER);

getContentPane().add(tree, BorderLayout.SOUTH);

}

public void setTable(){

Vector vCdata = new Vector();

vCdata.add("姓名");

vCdata.add("身份证号");

vCdata.add("性别");

tblInf.setModel(dtm);

for (int i = 0; i < vCdata.size(); i++) {

dtm.addColumn((String)vCdata.elementAt(i));

Vector vRdata = new Vector();

vRdata.add("王飞");

vRdata.add("430423199810249658");

vRdata.add("男");

dtm.addRow(vRdata);

}

}

public void setTree(){

DefaultMutableTreeNode root;

DefaultMutableTreeNode NodeName, NodeNumber, NodeSex;

DefaultMutableTreeNode leafName, leafNumber, leafSex;

root = new DefaultMutableTreeNode("个人信息");

NodeName = new DefaultMutableTreeNode("姓名");

leafName = new DefaultMutableTreeNode("王飞");

NodeNumber = new DefaultMutableTreeNode("身份证号");

leafNumber = new DefaultMutableTreeNode("430423199810249658");

NodeSex = new DefaultMutableTreeNode("性别");

leafSex = new DefaultMutableTreeNode("男");

root.add(NodeName);

root.add(NodeNumber);

root.add(NodeSex);

NodeName.add(leafName);

NodeNumber.add(leafNumber);

NodeSex.add(leafSex);

tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

tree.setShowsRootHandles(true);

tree.setEditable(false);

tree.setModel(new DefaultTreeModel(root));

}

public static void main(String []args){

TestSwing st = new TestSwing();

st.setSize(400, 450);

st.show();

}

}

2. 界面布局的简单例子 (以java Applet方式运行)

UserPanel.java文件

源代码如下:

package SampleGUI;

import java.applet.*;

import java.awt.*;

import java.applet.Applet;

public class UserPanel extends Applet{

Label lblName, lblNumber, lblSex, lblJob, lblText;

TextField tfName, tfNumber;

Checkbox chMale, chFemale;

CheckboxGroup c;

TextArea taText;

Choice chJob;

Button btnOK, btnCancel;

Panel p1, p2, p3, p4, p5, p6, p7, p8, p9;

public void init(){

lblName = new Label("姓名:");

lblNumber = new Label("身份证号: ");

lblSex = new Label("性别: ");

lblJob = new Label("职业: ");

lblText = new Label("修改化宣言: ");

tfName = new TextField(23);

tfNumber = new TextField(20);

taText = new TextArea(10, 20);

c = new CheckboxGroup();

chMale = new Checkbox("男", c, true);

chFemale = new Checkbox("女", c, false);

chJob = new Choice();

chJob.add("计算机");

chJob.add("医生");

chJob.add("教师");

chJob.add("军队");

btnOK = new Button("确定 ");

btnCancel = new Button("取消");

p1 = new Panel();

p2 = new Panel();

p3 = new Panel();

p4 = new Panel();

p5 = new Panel();

p6 = new Panel();

p7 = new Panel(new BorderLayout());

p8 = new Panel();

p9 = new Panel(new BorderLayout());

p1.add(lblName);

p1.add(tfName);

p2.add(lblNumber);

p2.add(tfNumber);

p3.add(lblSex);

p3.add(chMale);

p3.add(chFemale);

p4.add(lblJob);

p4.add(chJob);

p5.add(p3);

p5.add(p4);

p6.setLayout(new BorderLayout());

p6.add(p1, BorderLayout.NORTH);

p6.add(p2, BorderLayout.CENTER);

p6.add(p5, BorderLayout.SOUTH);

p7.add(lblText, BorderLayout.NORTH);

p7.add(taText, BorderLayout.CENTER);

p8.setLayout(new FlowLayout(FlowLayout.CENTER,30, 10));

p8.add(btnOK);

p8.add(btnCancel);

p9.add(p6, BorderLayout.NORTH);

p9.add(p7, BorderLayout.CENTER);

p9.add(p8, BorderLayout.SOUTH);

add(p9);

}

public void start(){

repaint();

}

}

3.用户图形界面例子

SampleGUI.java文件

package SampleGUI;

import java.awt.*;

import java.applet.*;

public class SampleGUI extends Applet{

Image samImage;

public void init(){

samImage = getImage(getDocumentBase(), "Hydrangeas.jpg");

}

public void paint(Graphics g){

//g.clipRect(50, 50, 180, 180);

g.drawLine(0, 0, 20, 30);

g.drawString("图形显示", 100, 30);

Color c = new Color(255,200,0);

g.setColor(c);

Font f = new Font("TimesRoman",Font.BOLD+Font.ITALIC, 24);

g.setFont(f);

g.drawString("图形显示", 180 , 30);

g.drawLine(20, 20, 100, 50);

g.drawLine(20, 20, 50, 100);

g.drawRect(40, 40, 40, 40);

g.fillRect(60, 60, 40, 40);

g.setColor(Color.red);

g.draw3DRect(80, 80, 40, 40, true);

g.draw3DRect(100, 100, 40, 40, false);

g.fill3DRect(120, 120, 40, 40, true);

g.drawOval(150, 150, 30, 40);

g.fillOval(170, 170, 20, 20);

g.setColor(Color.blue);

g.drawRoundRect(180, 180, 40, 40, 20, 20);

g.fillRoundRect(200, 200, 40, 40, 20, 20);

int xC[] = {242,260,254,297,242};

int yC[] = {240,243,290,300,270};

g.drawPolygon(xC, yC, 5);

g.drawImage(samImage, 250,50,this);

}

}

5.测试选择事件例子

UserItemEvent.java

package SampleGUI;

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.Applet;

public class UserItemEvent extends Applet implements ItemListener{

Checkbox cDisp;

Button btnDisp;

Choice cFont;

public void init(){

cDisp = new Checkbox("红色");

btnDisp = new Button("颜色显示");

cFont = new Choice();

cFont.add("10");

cFont.add("12");

cFont.add("14");

cDisp.addItemListener(this);

cFont.addItemListener(this);

add(cDisp);

add(cFont);

add(btnDisp);

}

public void itemStateChanged(ItemEvent e){

Checkbox temp;

Choice temp2;

Font oldF;

if (e.getItemSelectable()instanceof Checkbox) {

temp = (Checkbox)(e.getItemSelectable());

if (temp.getState()) {

btnDisp.setBackground(Color.red);

}else{

btnDisp.setBackground(Color.blue);

}

}

if (e.getItemSelectable()instanceof Choice) {

oldF = btnDisp.getFont();

temp2 = (Choice)(e.getItemSelectable());

String s = temp2.getSelectedItem();

btnDisp.setFont(new Font(oldF.getName(), oldF.getStyle(), Integer.parseInt(s)));

}

}

}

6.测试文本事件例子

UserTextEvent.java

package SampleGUI;

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.Applet;

public class UserTextEvent extends Applet implements

ActionListener, TextListener{

TextField tOld;

TextArea tNew;

Panel p;

public void init(){

tOld = new TextField(25);

tNew = new TextArea(8, 25);

tOld.addActionListener(this);

tOld.addTextListener(this);

p = new Panel(new BorderLayout());

p.add(tOld, BorderLayout.NORTH);

p.add(tNew, BorderLayout.SOUTH);

add(p);

}

public void textValueChanged(TextEvent e){

if (e.getSource() == tOld) {

tNew.setText(tOld.getText());

}

}

public void actionPerformed(ActionEvent e){

if (e.getSource() == tOld) {

tNew.setText("");

}

}

}

7.测试动作事件例子

UserButton.java

package SampleGUI;

import java.applet.*;

import java.awt.*;

import java.applet.Applet;

import java.awt.event.*;

public class UserButton extends Applet implements ActionListener{

String str1 = new String();

String strContent = new String();

Button b1;

Button b2;

boolean Is1 = false;

boolean Is2 = false;

Color c;

public void init(){

b1 = new Button();

b2 = new Button("按钮对象2");

this.add(b1);

this.add(b2);

b1.addActionListener(this);

b2.addActionListener(this);

}

public void start(){

b1.setLabel("按钮对象1");

str1 = b2.getLabel();

repaint();

}

public void paint(Graphics g){

g.drawString(str1, 120, 130);

g.drawString(strContent, 120, 200);

}

public void actionPerformed(ActionEvent e){

String arg = e.getActionCommand();

if ("按钮对象1" == arg) {

c = Color.red;

strContent = "按钮对象1";

}else if ("按钮对象2" == arg) {

c = Color.blue;

strContent = "按钮对象2";

}

repaint();

}

}

8.测试调整事件例子

UserAdjustmentEvent.java

package SampleGUI;

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.Applet;

public class UserAdjustmentEvent extends Applet implements AdjustmentListener{

Scrollbar s;

TextArea txtValue;

Panel p;

public void init(){

s = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 10, 36);

s.addAdjustmentListener(this);

txtValue = new TextArea(5,25);

p = new Panel(new BorderLayout());

p.add(s, BorderLayout.NORTH);

p.add((txtValue), BorderLayout.SOUTH);

add(p);

}

public void start(){

}

public void adjustmentValueChanged(AdjustmentEvent e){

int value;

Font oldF;

if (e.getAdjustable() == s) {

value = e.getValue();

txtValue.setText(new Integer(value).toString());

oldF = txtValue.getFont();

txtValue.setFont(new Font(oldF.getName(), oldF.getStyle(), value));

}

}

}

9.测试按钮和画布的鼠标事件例子

UserMouseEvent.java

package SampleGUI;

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.Applet;

public class UserMouseEvent extends Applet implements MouseListener, MouseMotionListener{

Button btn;

public void init(){

btn = new Button("演示鼠标事件");

add(btn);

// 给按钮添加鼠标事件和鼠标移动事件

btn.addMouseListener(this);

btn.addMouseMotionListener(this);

//给画布添加鼠标事件和鼠标移动事件

this.addMouseListener(this);

this.addMouseMotionListener(this);

}

public void mouseClicked(MouseEvent e){

Point p = new Point();

if (e.getSource() == btn) {

if (e.getClickCount() == 1) {

btn.setLabel("单击鼠标");

}else if (e.getClickCount() == 2) {

btn.setLabel("双击鼠标");

}

}else{

if (e.getClickCount() == 1) {

p = e.getPoint();

showStatus(p.x+","+p.y+"单击鼠标");

}else if (e.getClickCount() == 2) {

p = e.getPoint();

showStatus(p.x+","+p.y+"双击鼠标");

}

}

}

public void mouseEntered(MouseEvent e){

if (e.getSource() == btn) {

btn.setLabel("进入Button");

}else{

showStatus("进入Applet");

}

}

public void mouseExited(MouseEvent e){

if (e.getSource() == btn) {

btn.setLabel("退出Button");

}else{

showStatus("退出Applet");

}

}

public void mousePressed(MouseEvent e){

if (e.getSource() == btn) {

btn.setLabel("按下鼠标");

}else{

showStatus("按下鼠标");

}

}

public void mouseReleased(MouseEvent e){

if (e.getSource() == btn) {

btn.setLabel("松开鼠标");

}else{

showStatus("松开鼠标");

}

}

public void mouseMoved(MouseEvent e){

if (e.getSource() == btn) {

btn.setLabel("移动鼠标");

}else{

showStatus("移动鼠标,新位置"+e.getX()+","+e.getY());

}

}

public void mouseDragged(MouseEvent e){

if (e.getSource() == btn) {

btn.setLabel("拖动鼠标");

}else{

showStatus("拖动鼠标");

}

}

}

10.测试键盘事件的例子

UserKeyEvent.java

package SampleGUI;

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.Applet;

public class UserKeyEvent extends Applet implements KeyListener{

Button btn;

public void init(){

btn = new Button("test");

btn.addKeyListener(this);

this.addKeyListener(this);

add(btn);

}

@Override

public void keyPressed(KeyEvent e) {

// TODO Auto-generated method stub

char ch = e.getKeyChar();

if (ch == 'Y' || ch == 'y') {

btn.setLabel("同意");

}else if (ch == 'N' || ch == 'n') {

btn.setLabel("反对");

}else{

btn.setLabel("无效");

}

}

@Override

public void keyTyped(KeyEvent e) {

// TODO Auto-generated method stub

}

@Override

public void keyReleased(KeyEvent e) {

// TODO Auto-generated method stub

}

}

11. 测试输入输出流例子

SystemIO.java文件

package MThread;

import java.io.*;

public class SystemIO{

public static void main(String []args){

int bytes = 0;

byte buf[] = new byte[255];

System.out.println("\n请输入任意文本: ");

try

{

bytes = System.in.read(buf, 0, 255);

System.out.println("这是你输入的文本行: ");

String inSr = new String(buf, 0, bytes);

System.out.println(inSr);

} catch (Exception e) {

// TODO: handle exception

System.out.println(e.getMessage());

}

}

}

例子一 UserFileInputStream.java文件

package MThread;

import java.io.*;

public class UserFileInputStream{

public static void main(String []args){

byte buf[] = new byte[2056];

try {

FileInputStream fileIn = new FileInputStream("./src/Mthread/UserFileInputStream.java");

int bytes = fileIn.read(buf, 0, 2056);

String inSr = new String(buf, 0, bytes);

System.out.println(inSr);

} catch (Exception e) {

// TODO: handle exception

System.out.println(e.getMessage());

}

}

}

例子二 UserFileOutputStream.java文件

package MThread;

import java.io.*;

public class UserFileOutputStream{

public static void main(String []args){

byte buf[] = new byte[255];

byte bufIn[] = new byte[255];

try {

String str = "你好,这是已有的文本";

buf = str.getBytes();

FileOutputStream fileOut = new FileOutputStream("Hello.txt");

fileOut.write(buf, 0, buf.length);

fileOut.flush();

fileOut.close();

System.out.println("\n请输入一行文本: ");

int bytes = System.in.read(bufIn, 0, 255);

fileOut = new FileOutputStream("Hello.txt", true);

fileOut.write(bufIn, 0, bytes);

} catch (Exception e) {

// TODO: handle exception

System.out.println(e.getMessage());

}

}

}

例子三 线程

MThread.java文件

package MThread;

//package MThread;

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.Applet;

public class MThread{

public static void main(String []args){

System.out.println("HelloWorld");

thread2 t1= new thread2("线程实例1");

t1.start();

thread2 t2 = new thread2("线程实例2");

t2.start();

thread2 t3 = new thread2("线程实例3");

t3.start();

}

}

class thread2 extends Thread{

Thread thread;

String str;

public thread2(String str){

this.str = str;

}

public void start(){

thread = new Thread(this);

thread.start();

}

public void run(){

int i = 0;

while (thread != null) {

try {

if (5 == i) {

sleep(10000);

}

} catch (Exception e) {

// TODO: handle exception

System.out.println(e.getMessage());

}

System.out.println(str);

i++;

}

}

}

例子四 线程

UserRunnable.java

package MThread;

import java.awt.*;

import java.applet.*;

import java.applet.Applet;

public class UserRunnable extends Applet implements Runnable{

Thread t;

Image imgs[];

int high, h1, h2, h3;

public void init(){

high = getHeight()/3;

h1 = high;

h2 = high * 2;

h3 = high * 3;

imgs = new Image[3];

for (int i = 0; i < 3; i++) {

imgs[i] = getImage(getDocumentBase(), "image"+(i+1)+".png");

}

}

public void start(){

t = new Thread(this);

t.start();

}

public void stop(){

t = null;

}

public void run(){

while (t != null) {

try {

Thread.sleep(10000);

repaint();

h1--;

if (0 == h1) {

Thread.sleep(30000);

h2 = high;

}

h2--;

if (0 == h2) {

Thread.sleep(30000);

h3 = high;

}

h3--;

if (0 == h3) {

Thread.sleep(30000);

h1 = high;

}

} catch (Exception e) {

// TODO: handle exception

System.out.println(e.getMessage());

}

}

}

public void paint(Graphics g){

g.drawImage(imgs[0], 0, h1, this);

g.drawImage(imgs[1], 0, h2, this);

g.drawImage(imgs[2], 0, h3, this);

}

public void update(Graphics g){

paint(g);

}

}

UserFile.java文件

package MThread;

import java.io.*;

public class UserFile{

public static void main(String []args){

try {

File f = new File("temp.txt");

System.out.println("创建临时文件");

FileOutputStream fout = new FileOutputStream(f);

PrintStream p = new PrintStream(fout);

p.println("将这句话写入临时文件");

System.out.println("写临时文件");

p.close();

f.deleteOnExit();

System.out.println("删除临时文件");

} catch (Exception e) {

// TODO: handle exception

System.out.println(e.getMessage());

}

}

}

数据库编程例子

UserJDBC.java

1. 先用Microsoft Visual FoxPro 6.0建立FoxPro数据库,数据库名为Student.mdb, 其中一个表为Xuesheng.dbf, 表中有学号、姓名、班级、出生日期、性别字段, 并添加几条记录进去。

2.配置ODBC数据源: 依次找到程序---管理工具---数据源(ODBC)(在控制面板中可以找到ODBC),调出“ODBC数据源管理器”,点击“添加”按钮,出现“创建新数据源”窗口,选择Microsoft Visual FoxPro Driver,点击完成。进入“ODBC Visual FoxPro Setup”窗口。

Data Source Name: ODBC提供给应用程序的数据库的名字。( 给数据库取个名字)

Description: 用来说明数据库的文字信息,根据自己的需要填写。

Path: ODBC映射数据库的具体路径,可以直接填写完整路径,也可以点击“Browse(浏览)”按钮选择数据库,这里选择之前建立的Student.mdb数据库,点击OK按钮,可以看见“ODBC数据源管理器”窗口多了一个STU数据源。

package MThread;

import java.sql.*;

public class UserJDBC{

public static void main(String []args){

try {

Statement stmt;

PreparedStatement pstmt;

ResultSet rs;

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String urlName = "jdbc:odbc:STU";

Connection conn = DriverManager.getConnection(urlName, "", "");

stmt = conn.createStatement();

rs = stmt.executeQuery("select 学号, 姓名, 班级 from Xuesheng WHERE 班级='025'");

System.out.println("显示所有返回结果: ");

while(rs.next()) {

String strNumber = rs.getString("学号");

String strName = rs.getString("姓名");

String strClass = rs.getString(3);

System.out.println("学号: "+strNumber+" 姓名: "+strName+" 班级:"+strClass);

}

pstmt = conn.prepareStatement("UPDATE Xuesheng SET 班级= ? WHERE 班级=?");

pstmt.setString(1, "计算机");

pstmt.setString(2, "025");

pstmt.executeUpdate();

conn.close();

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: