求SWT实例

[复制链接]
查看11 | 回复1 | 2008-5-9 17:53:29 | 显示全部楼层 |阅读模式
给你这个吧。。以前写的。。package pro;import java.awt.Toolkit;import javax.swing.SwingUtilities;import javax.swing.UIManager;import java.awt.Dimension;import javax.swing.ButtonGroup;import java.awt.event.ActionEvent;import javax.swing.JOptionPane;import javax.swing.JComboBox;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.JPasswordField;import java.awt.event.ActionListener;import javax.swing.JRadioButton;import javax.swing.JButton;import java.awt.Rectangle;import javax.swing.JTextField;import javax.swing.JLabel;public class Start {
boolean packFrame = false;
/**
* Construct and show the application.
*/
public Start() {
Main frame = new Main();
// Validate frames that have preset sizes
// Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
} else {
frame.validate();
}
// Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
/**
* Application entry point.
*
* @param args String[]
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {//
UIManager.setLookAndFeel(UIManager.//
getSystemLookAndFeelClassName());
} catch (Exception exception) {
exception.printStackTrace();
}
new Start();
}
});
}}class Main extends JFrame {
JPanel contentPane;
JLabel lb_landUser = new JLabel();
JLabel lb_pwd = new JLabel();
JLabel lb_opwd = new JLabel();
JLabel lb_sex = new JLabel();
JLabel lb_name = new JLabel();
JLabel lb_sf = new JLabel();
JLabel lb_class = new JLabel();
JTextField txt_land = new JTextField();
JTextField txt_name = new JTextField();
ButtonGroup btgroupSex = new ButtonGroup();
ButtonGroup btgroupType = new ButtonGroup();
JRadioButton jr_man = new JRadioButton();
JRadioButton jr_woman = new JRadioButton();
JRadioButton pr_pt = new JRadioButton();
JRadioButton jr_stu = new JRadioButton();
JComboBox jc_class = new JComboBox();
JButton bt_action = new JButton();
JPasswordField pwd_onaffirm = new JPasswordField();
JPasswordField pwd_affirm = new JPasswordField();
public Main() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(329, 401));
setTitle("reg");
lb_landUser.setText("登陆名称");
lb_landUser.setBounds(new Rectangle(30, 26, 63, 18));
lb_pwd.setText("密
码");
lb_pwd.setBounds(new Rectangle(30, 70, 63, 18));
lb_opwd.setText("确认密码");
lb_opwd.setBounds(new Rectangle(30, 113, 63, 18));
lb_sex.setText("性
别");
lb_sex.setBounds(new Rectangle(30, 157, 63, 18));
lb_name.setText("真实姓名");
lb_name.setBounds(new Rectangle(30, 200, 63, 18));
lb_sf.setText("名户身份");
lb_sf.setBounds(new Rectangle(30, 244, 63, 18));
lb_class.setText("所在班级");
lb_class.setBounds(new Rectangle(30, 287, 63, 18));
txt_land.setToolTipText("输入帐号");
txt_land.setBounds(new Rectangle(110, 26, 190, 21));
txt_name.setToolTipText("真实姓名");
txt_name.setBounds(new Rectangle(105, 200, 190, 21));
jr_man.setText("男");
jr_man.setBounds(new Rectangle(110, 157, 59, 23));
jr_woman.setText("女");
jr_woman.setBounds(new Rectangle(203, 157, 59, 23));
pr_pt.setText("教师");
pr_pt.setBounds(new Rectangle(110, 244, 59, 23));
jr_stu.setText("学生");
jr_stu.setBounds(new Rectangle(203, 244, 59, 23));
jc_class.setBounds(new Rectangle(110, 287, 190, 21));
jc_class.addItem("accpts128");
jc_class.addItem("accpts129");
jc_class.addItem("accpts130");
bt_action.setBounds(new Rectangle(129, 341, 70, 23));
bt_action.setText("提交");
bt_action.addActionListener(new Main_bt_action_actionAdapter(this));
pwd_onaffirm.setToolTipText("输入密码");
pwd_onaffirm.setBounds(new Rectangle(110, 70, 190, 21));
pwd_affirm.setToolTipText("确认密码");
pwd_affirm.setBounds(new Rectangle(110, 113, 190, 21));
contentPane.add(lb_class);
contentPane.add(lb_sf);
contentPane.add(lb_name);
contentPane.add(lb_sex);
contentPane.add(lb_opwd);
contentPane.add(lb_pwd);
contentPane.add(lb_landUser);
contentPane.add(txt_land);
contentPane.add(pr_pt);
contentPane.add(jr_stu);
contentPane.add(jc_class);
contentPane.add(bt_action);
contentPane.add(pwd_affirm);
contentPane.add(pwd_onaffirm);
contentPane.add(txt_name);
contentPane.add(jr_man);
contentPane.add(jr_woman);
btgroupSex.add(jr_man);
btgroupSex.add(jr_woman);
btgroupType.add(pr_pt);
btgroupType.add(jr_stu);
}
//单击事件;
public void bt_action_actionPerformed(ActionEvent e) {
DBConnect database = new DBConnect();
String landname = txt_land.getText().trim();
String password = new String(pwd_onaffirm.getPassword()).trim();
String affirmpwd = new String(pwd_affirm.getPassword()).trim();
String sex = jr_man.isSelected() ? "1" : "2";
String name = txt_name.getText().trim();
String type = pr_pt.isSelected() ? "1" : "2";
String cl = (String) jc_class.getSelectedItem();
if (!password.equals(affirmpwd)) {
JOptionPane.showMessageDialog(
this,"两次密码不一致","提示",JOptionPane.INFORMATION_MESSAGE);
return ;
}
boolean flag = database.insert("insert into userinfo values('" + landname + "','" + password + "','" +
name + "','" + sex + "','" + type + "','" + cl + "')");
if (flag) {
JOptionPane.showMessageDialog(
this,"注册成功!","提示",JOptionPane.INFORMATION_MESSAGE);
}else {
JOptionPane.showMessageDialog(
this,"注册失败!","提示",JOptionPane.INFORMATION_MESSAGE);
}
}}class Main_bt_action_actionAdapter implements ActionListener {
private Main adaptee;
Main_bt_action_actionAdapter(Main adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.bt_action_actionPerformed(e);
}}
回复

使用道具 举报

千问 | 2008-5-9 17:53:29 | 显示全部楼层
swt ? swing 和 awt 吧 ?给你个sun公司的 小demo 直接可以运行的。你研究研究吧 。。import javax.swing.DefaultCellEditor;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.AbstractTableModel;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.TableCellRenderer;import javax.swing.table.TableColumn;import java.awt.Component;import java.awt.Dimension;import java.awt.GridLayout;/*** TableRenderDemo is just like TableDemo, except that it * explicitly initializes column sizes and it uses a combo box * as an editor for the Sport column. */public class TableRenderDemo extends JPanel {
private boolean DEBUG = false;
public TableRenderDemo() {
super(new GridLayout(1,0));
JTable table = new JTable(new MyTableModel());
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
//Create the scroll pane and add the table to it.
JScrollPane scrollPane = new JScrollPane(table);
//Set up column sizes.
initColumnSizes(table);
//Fiddle with the Sport column's cell editors/renderers.
setUpSportColumn(table, table.getColumnModel().getColumn(2));
//Add the scroll pane to this panel.
add(scrollPane);
}
/*
* This method picks good column sizes.
* If all column heads are wider than the column's cells'
* contents, then you can just use column.sizeWidthToFit().
*/
private void initColumnSizes(JTable table) {
MyTableModel model = (MyTableModel)table.getModel();
TableColumn column = null;
Component comp = null;
int headerWidth = 0;
int cellWidth = 0;
Object[] longValues = model.longValues;
TableCellRenderer headerRenderer =
table.getTableHeader().getDefaultRenderer();
for (int i = 0; i < 5; i++) {
column = table.getColumnModel().getColumn(i);
comp = headerRenderer.getTableCellRendererComponent(
null, column.getHeaderValue(),
false, false, 0, 0);
headerWidth = comp.getPreferredSize().width;
comp = table.getDefaultRenderer(model.getColumnClass(i)).
getTableCellRendererComponent(
table, longValues,
false, false, 0, i);
cellWidth = comp.getPreferredSize().width;
if (DEBUG) {
System.out.println("Initializing width of column "
+ i + ". "
+ "headerWidth = " + headerWidth
+ "; cellWidth = " + cellWidth);
}
column.setPreferredWidth(Math.max(headerWidth, cellWidth));
}
}
public void setUpSportColumn(JTable table,
TableColumn sportColumn) {
//Set up the editor for the sport cells.
JComboBox comboBox = new JComboBox();
comboBox.addItem("Snowboarding");
comboBox.addItem("Rowing");
comboBox.addItem("Knitting");
comboBox.addItem("Speed reading");
comboBox.addItem("Pool");
comboBox.addItem("None of the above");
sportColumn.setCellEditor(new DefaultCellEditor(comboBox));
//Set up tool tips for the sport cells.
DefaultTableCellRenderer renderer =
new DefaultTableCellRenderer();
renderer.setToolTipText("Click for combo box");
sportColumn.setCellRenderer(renderer);
}
class MyTableModel extends AbstractTableModel {
private String[] columnNames = {"First Name",
"Last Name",
"Sport",
"# of Years",
"Vegetarian"};
private Object[][] data = {
{"Mary", "Campione",
"Snowboarding", new Integer(5), new Boolean(false)},
{"Alison", "Huml",
"Rowing", new Integer(3), new Boolean(true)},
{"Kathy", "Walrath",
"Knitting", new Integer(2), new Boolean(false)},
{"Sharon", "Zakhour",
"Speed reading", new Integer(20), new Boolean(true)},
{"Philip", "Milne",
"Pool", new Integer(10), new Boolean(false)}
};
public final Object[] longValues = {"Sharon", "Campione",
"None of the above",
new Integer(20), Boolean.TRUE};
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
/*
* JTable uses this method to determine the default renderer/
* editor for each cell.If we didn't implement this method,
* then the last column would contain text ("true"/"false"),
* rather than a check box.
*/
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
/*
* Don't need to implement this method unless your table's
* editable.
*/
public boolean isCellEditable(int row, int col) {
//Note that the data/cell address is constant,
//no matter where the cell appears onscreen.
if (col < 2) {
return false;
} else {
return true;
}
}
/*
* Don't need to implement this method unless your table's
* data can change.
*/
public void setValueAt(Object value, int row, int col) {
if (DEBUG) {
System.out.println("Setting value at " + row + "," + col
+ " to " + value
+ " (an instance of "
+ value.getClass() + ")");
}
data[row][col] = value;
fireTableCellUpdated(row, col);
if (DEBUG) {
System.out.println("New value of data:");
printDebugData();
}
}
private void printDebugData() {
int numRows = getRowCount();
int numCols = getColumnCount();
for (int i=0; i < numRows; i++) {
System.out.print("
row " + i + ":");
for (int j=0; j < numCols; j++) {
System.out.print("" + data[j]);
}
System.out.println();
}
System.out.println("--------------------------");
}
}
/**
* Create the GUI and show it.For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("TableRenderDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
TableRenderDemo newContentPane = new TableRenderDemo();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行