📄 w.java
字号:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.util.LinkedList;
import javax.swing.table.TableColumn;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.*;
import javax.swing.table.TableColumn;
import javax.swing.JTable.*;
import java.util.*;
import javax.swing.table.AbstractTableModel;
//主界面
class JieMian extends JFrame implements ItemListener,ActionListener
{
Container c;
Checkbox checkbox1,checkbox2,checkbox3,checkbox4;
CheckboxGroup mygroup;
JButton b1,b2;
JLabel l1;
JPanel p1,p2,p3,p4;
JFileChooser fileChooser;
String filename;
public JieMian()
{
super("dbms");
fileChooser=new JFileChooser("f:/");
c=getContentPane();
mygroup=new CheckboxGroup();
checkbox1=new Checkbox("建新表",mygroup,true);
checkbox2=new Checkbox("打开已有表",mygroup,true);
checkbox1.addItemListener(this);
checkbox2.addItemListener(this);
b1=new JButton("确定");
b2=new JButton("取消");
b2.addActionListener(this);
l1=new JLabel("+++请选择您要执行的命令+++");
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
p4=new JPanel();
p1.add(l1);
p2.add(checkbox1);
p2.add(checkbox2);
p3.add(b2);
p4.add(p1);p4.add(p2);p4.add(p3);
p4.setLayout(new GridLayout(3,1));
c.add(p4);
setVisible(false);
setSize(300,200);
setLocation(new Point(300,300));
validate();
show();
}
////////////////////////////////////////////////////////////////
public void itemStateChanged(ItemEvent e)
{
if ( e.getSource () == checkbox1 )
{
create ct = new create ();
}
if ( e.getSource () == checkbox2 )
{
JFileChooser fc = new JFileChooser () ;
fc.setLocation(500,450);
fc.setDialogTitle("打开表");
int returnVal = fc.showOpenDialog(this);
File file=fc.getSelectedFile();
filename=file.getPath();
openfile o=new openfile(filename);
o.show();
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1){}
if(e.getSource()==b2){w.fr.setVisible(true);setVisible(false);}
}
}
////////////////////////////////////////////////////////////////
//建表界面
class create extends JFrame implements ActionListener {
public static Container c;
public JPanel ta;
private DefaultTableModel dt;
private JTable table;
private Object []data;
private LinkedList lst,ls;
private JMenuItem menuItem;
private JPopupMenu popup;
private int selectedRow;
JButton b1,b2,b3,b4,b5;
JPanel p1,p2;
/////////////////////////////////////////////////////////
public create () {
super ( "建表" ) ;
setLocation ( 320,275 ) ;
setSize ( 400,250 ) ;
c = getContentPane () ;
b1=new JButton("尾插");
b2=new JButton("前插");
b3=new JButton("确定");
b4=new JButton("删除");
b5=new JButton("取消");
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
p1=new JPanel();
p2=new JPanel();
p1.add(b1);p1.add(b2);p1.add(b3);p1.add(b4);p1.add(b5);
c.setLayout ( new FlowLayout()) ;
ta=new JPanel();
c.add(ta) ;c.add(p1);
String[] columnNames = { "字段名", "字段类型", "字段长度" ,"关键字"} ;
dt=new DefaultTableModel ( columnNames , 1 ) ;
table = new JTable ( dt ) ;
table.setPreferredScrollableViewportSize ( new Dimension ( 370, 96 ) ) ;
table.getColumnModel () .getColumn (0) .setPreferredWidth (80) ;
table.getColumnModel () .getColumn (1) .setPreferredWidth (40) ;
table.getColumnModel () .getColumn (2) .setPreferredWidth (30) ;
table.getColumnModel () .getColumn (3) .setPreferredWidth (20) ;
TableColumn charColumn = table.getColumnModel () .getColumn (1) ;
JComboBox comboBox1 = new JComboBox();
comboBox1.addItem ( "char" ) ;
comboBox1.addItem ( "int" ) ;
comboBox1.addItem ("double");
charColumn.setCellEditor ( new DefaultCellEditor ( comboBox1 ) ) ;
TableColumn lenColumn = table.getColumnModel () .getColumn (2) ;
JComboBox comboBox2 = new JComboBox () ;
comboBox2.addItem ( "1" ) ;
comboBox2.addItem ( "2" ) ;
comboBox2.addItem ( "4" ) ;
comboBox2.addItem ( "8" ) ;
lenColumn.setCellEditor ( new DefaultCellEditor ( comboBox2 ) );
TableColumn intColumn =table.getColumnModel().getColumn(3);
JComboBox comboBox3=new JComboBox();
comboBox3.addItem("是");
comboBox3.addItem("否");
intColumn.setCellEditor(new DefaultCellEditor(comboBox3));
JScrollPane scrollPane = new JScrollPane(table);
ta.add(scrollPane);
table.setSelectionMode ( ListSelectionModel.SINGLE_SELECTION );
ListSelectionModel rowSM = table.getSelectionModel();
rowSM.addListSelectionListener ( new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if ( e.getValueIsAdjusting() ) return;
ListSelectionModel lsm = ( ListSelectionModel ) e.getSource();
selectedRow = lsm.getMinSelectionIndex();
}
});
setVisible ( true ) ;
}
//////////////////////////////////////////////////////////
public Boolean passnext () {
int i = 0,len;
String name;
lst = new LinkedList () ;
int rowNum = table.getRowCount () ;
try{
for ( i = 0 ; i < rowNum ; i++ ){
name = table.getValueAt ( i,0 ) . toString () ;
lst.addLast ( name ) ;
System.out.println(name);
}
}
catch ( NullPointerException e ) {
i++;
JOptionPane.showMessageDialog
( create.c," 第 "+i+" 行 有空值 !","ererr",
JOptionPane.ERROR_MESSAGE ) ;
return Boolean.FALSE;
}
return Boolean.TRUE;
}
/////////////////////////////////////////////////
public class PopupListener extends MouseAdapter {
public void mousePressed(MouseEvent e) {
maybeShowPopup(e);
}
public void mouseReleased(MouseEvent e) {
maybeShowPopup(e);
}
private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()) {
popup.show(e.getComponent(),e.getX(), e.getY());
}
}
} //////////////////////////////////////////////////
/////////////////////////////////////////////////
public void actionPerformed ( ActionEvent e ) {
String cmd = e.getActionCommand () ;
if (e.getSource()== b1){
dt.addRow(data);
}
if ( e.getSource()== b2 ) {
if ( selectedRow == -1 )
selectedRow++;
dt.insertRow ( selectedRow,data ) ;
}
if (e.getSource()== b3) {
if(passnext().booleanValue()){
setVisible(false);
putin sd;
sd=new putin(lst);
}
}
if ( e.getSource()== b4 ){
if ( selectedRow == -1 )
selectedRow++;
dt.removeRow ( selectedRow ) ;
}
if ( e.getSource()== b5 ) {
setVisible(false);
}
}
}
/////////////////////////////////////////////////////////
/////////输入数据类
class putin extends JFrame implements ActionListener{
Container c;
JPanel p1,p2;
JTable table;
DefaultTableModel dt;
JButton b1,b2,b3,b4,b5;
String[] data;
int selectedRow;
String filename=null;
JMenuItem menuItem;
JPopupMenu popup;
int lenght;
LinkedList ls,lst;
private boolean ss=false;
putin(LinkedList ls){
super("数据内容");
this.ls=ls;
this.lenght=ls.size();
c=getContentPane();
c.setLayout(new FlowLayout());
setSize(500,350);
setLocation(170,150);
p1=new JPanel();
p2=new JPanel();
b1=new JButton("添加");
b1.addActionListener(this);
b2=new JButton("插入");
b2.addActionListener(this);
b3=new JButton("保存");
b3.addActionListener(this);
b4=new JButton("删除");
b4.addActionListener(this);
b5=new JButton("返回");
b5.addActionListener(this);
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(b4);
p2.add(b5);
p1.setLayout(new GridLayout(1,0));
dt=new DefaultTableModel(ls.toArray(),1);
table = new JTable(dt);
table.setRowHeight(20);
table.setPreferredScrollableViewportSize(new Dimension(450,230));
p1.add(table);
c.add(p1);
c.add(p2);
JScrollPane scrollPane = new JScrollPane(table);
p1.add(scrollPane);
table.setSelectionMode ( ListSelectionModel.SINGLE_SELECTION );
ListSelectionModel rowSM = table.getSelectionModel();
rowSM.addListSelectionListener ( new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if ( e.getValueIsAdjusting() ) return;
ListSelectionModel lsm = ( ListSelectionModel ) e.getSource();
selectedRow = lsm.getMinSelectionIndex();
}
});
setVisible(true);
}
/////////////////////////////////////////////
//保存文件
public boolean savefile(String filename)
{
int i=0,j=0;
String s=null;
try{
FileWriter out=new FileWriter(filename);
BufferedWriter bout=new BufferedWriter(out);
String charname;
int rowNum=table.getRowCount();
try{
for(j=0;j<ls.size();j++)
{
s=ls.get(j).toString();
bout.write(s);
bout.write(" ");
}
bout.newLine();
for(i=0;i<rowNum;i++){
for(j=0;j<lenght;j++)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -