- 再也不做稀饭了
-
不知道这个程序对你有没有帮助
package swt;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ControlEditor;
import org.eclipse.swt.custom.TableCursor;
import org.eclipse.swt.custom.TableEditor;
import org.eclipse.swt.custom.ViewForm;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
public class SimpleTable2 {
/**
* Launch the application
* @param args
*/
private Shell shell;
private Composite composite;
private ViewForm viewForm;
private Table table;
private void createShell(){
shell = new Shell();
shell.setSize(500, 375);
shell.setText("SWT Application");
createViewForm();
}
private void createViewForm(){
viewForm=new ViewForm(shell,SWT.NONE);
createComposite();
viewForm.setContent(composite);
viewForm.pack();
}
private void createComposite(){
composite=new Composite(viewForm,SWT.NONE);
createTable();
composite.pack();
}
private void createTable() {
table=new Table(composite,SWT.FULL_SELECTION);
table.setHeaderVisible(true);
table.setLinesVisible(true);
String[] header=;
for(int i=0;i<header.length;i++){
TableColumn column=new TableColumn(table,SWT.NONE);
column.setText(header[i]);
}
TableItem tableItem=new TableItem(table,SWT.NONE);
tableItem.setText(new String[]);
tableItem=new TableItem(table,SWT.NONE);
tableItem.setText(new String[]);
for(int i=0;i<table.getColumnCount();i++)
table.getColumn(i).pack();
table.pack();
//add ControlEditor on TableCursor
final TableCursor cursor=new TableCursor(table,SWT.NONE);
//cursor令使用左右键选择单元格成为可能
final ControlEditor editor=new ControlEditor(cursor);
editor.grabHorizontal=true;
editor.grabVertical=true;
cursor.addSelectionListener(new SelectionListener(){
public void widgetDefaultSelected(SelectionEvent e) {
//当触发此事件时才创建text(并为她添加事件),并用setFocus()把她固定住
final Text text=new Text(cursor,SWT.NONE);
TableItem row=cursor.getRow();
int column=cursor.getColumn();
text.setText(row.getText(column));
text.addKeyListener(new KeyListener(){
public void keyPressed(KeyEvent e) {
if(e.character==SWT.CR){
TableItem row=cursor.getRow();
int column=cursor.getColumn();
row.setText(column,text.getText());
text.dispose();
}
}
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
});
text.addFocusListener(new FocusListener(){
public void focusGained(FocusEvent e) {
// TODO Auto-generated method stub
}
public void focusLost(FocusEvent e) {
text.dispose(); //目前认为可有可无
}
});
editor.setEditor(text);
text.setFocus(); //将text固定于某个单元格上
}
public void widgetSelected(SelectionEvent e) {
table.setSelection(new TableItem[]);
//当选中某行时,此行出现阴影
}
});
}
public static void main(String[] args) {
final Display display = Display.getDefault();
SimpleTable2 st=new SimpleTable2();
//
st.createShell();
st.shell.pack();
st.shell.open();
st.shell.layout();
while (!st.shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
}
- 皮皮
-
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
public class TableFromDB extends JFrame{
private TableModel model;
public TableFromDB(){
JPanel panel=new JPanel();
panel.setSize(400, 400);
add(panel,"Center");
model= new TableModel();
final JTable t=new JTable(model);
JScrollPane s_pan = new JScrollPane(t);
panel.add(s_pan);
final JButton load=new JButton("Load");
final JButton reset=new JButton("Reset");
panel.add(load);
panel.add(reset);
load.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
List<List> data=getData();
model.removeRows(0, model.getRowCount());
for(int i=0;i<data.size();i++){
model.addRow((String)data.get(i).get(1), (String)data.get(i).get(2));
}
t.updateUI();
}
});
reset.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
model.removeRows(0, model.getRowCount());
t.updateUI();
}
});
setSize(500,500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public List<List> getData(){
List<List> data=new ArrayList<List>();
// DB db = new DB();
// String sql = "select * from t_user";
// Statement sm = db.getStatement();
// int i=0;
// try {
// ResultSet rs = sm.executeQuery(sql);
// while(rs.next()){
// List detail=new ArrayList();
// detail.add(rs.getLong("id"));
// detail.add(rs.getString("name"));
// detail.add(rs.getString("password"));
// data.add(detail);
// System.out.println(data.get(i).get(0)+" "+data.get(i).get(1)+" "+data.get(i).get(2));
// i++;
// }
// } catch (SQLException e) {
// e.printStackTrace();
// }
List d1=new ArrayList();
d1.add(1);d1.add("C");d1.add("hello");
List d2=new ArrayList();
d2.add(2);d2.add("Java");d2.add("world");
data.add(d1);
data.add(d2);
return data;
}
public static void main(String[] args) {
new TableFromDB();
}
}
class TableModel extends AbstractTableModel{
private Vector content=null;
private String[] title_name = { "ID", "name", "password"};
public TableModel(){
content = new Vector();
}
public TableModel(int count){
content = new Vector(count);
}
public void addRow(String name, String password) {
Vector v = new Vector(3);
v.add(0, new Integer(content.size()));
v.add(1, name);
v.add(2, password);
content.add(v);
}
public void removeRow(int row) {
content.remove(row);
}
public void removeRows(int row, int count) {
for (int i = 0; i < count; i++) {
if (content.size() > row) {
content.remove(row);
}
}
}
public int getColumnCount() {
return title_name.length;
}
public int getRowCount() {
return content.size();
}
public Object getValueAt(int row, int col) {
return ((Vector) content.get(row)).get(col);
}
public String getColumnName(int col) {
return title_name[col];
}
public void setValueAt(Object value, int row, int col) {
((Vector) content.get(row)).remove(col);
((Vector) content.get(row)).add(col, value);
this.fireTableCellUpdated(row, col);
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
if (columnIndex == 0) {
return false;
}
return true;
}
}