读书人

问点小疑点

发布时间: 2012-01-13 22:43:29 作者: rapoo

问点小问题!
package frame;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.Dimension;
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 java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;




public class insert extends JPanel implements ActionListener {





//JFrame frame;
JPanel panel1;
JPanel panel4;
JPanel panel2;
JPanel panel3;
JPanel panel;
JLabel label1;
JLabel label2;
JLabel label3;
JLabel label4;
JLabel label5;
JTextField text1;
JTextField text2;
JTextField text3;
JTextField text4;
JTextField text5;
JComboBox com;
JButton button1;
JButton button3;
JButton button2;
JButton button4;
JButton button5;





public insert() {

//frame.setVisible(false);
panel3=new JPanel();
panel1=new JPanel();
panel2=new JPanel();
panel4=new JPanel();
label1=new JLabel("学号");
label2=new JLabel("姓名");
label3=new JLabel("班级");
label4=new JLabel("电话");
label5=new JLabel("家庭住址");
text1=new JTextField(10);
text1.addActionListener(this);
text2=new JTextField(5);
text3=new JTextField(5);
text4=new JTextField(10);
text5=new JTextField(20);
com=new JComboBox();
button1=new JButton("完成");
button3=new JButton("清空");
button2=new JButton("取消");
button2.addActionListener(this);
button4=new JButton("存入");
button4.addActionListener(this);
button5=new JButton("清空");

button5.addActionListener(this);

com.addItem("男");
com.addItem("女");

this.setLayout(new GridLayout(3,8));
panel1.add(label1);
panel1.add(text1);
panel1.add(label2);
panel1.add(text2);
panel1.add(com);
panel1.add(label3);
panel1.add(text3);
panel1.add(label4);
panel1.add(text4);
panel1.add(label5);
panel1.add(text5);
panel1.add(button4);
panel1.add(button5);
panel3.add(new Table3(null));

panel2.add(button1);
panel2.add(button3);
panel2.add(button2);
this.add(panel1);
this.add(panel3);
this.add(panel2);

this.setSize(800,600);
this.setLocation(300,100);
this.setVisible(true);

//button1.addActionListener(new show());



}






public void actionPerformed(ActionEvent arg0) {
//事件的触发
if(arg0.getSource()==text1)
{


}

if(arg0.getSource()== button4)
{


panel3.removeAll();
panel3.add(new Table3(text1.getText()));

panel3.updateUI();








}



if(arg0.getSource()==button5)
{
text1.setText("");


text2.setText("");
text3.setText("");
text4.setText("");
text5.setText("");
}
if(arg0.getSource()==button2)
{
this.disable();
}
// TODO Auto-generated method stub

}







}
class Table3 extends JPanel {
public Table3(String text) {
/*表格列向量*/
Vector cell,cell2,cell3 ;
/*表格行向量*/
Vector row = new Vector();
/*声明表格模型*/
DefaultTableModel tableModel = new DefaultTableModel();
/*声明表格头数组*/
String[] tableHeads = {"学号","JAVA程序设计", "专业英语", "日语","操作系统","SQL2000"};
/*将表格头转换过向量类型,以备表格模型使用*/
Vector tableHeadName = new Vector();
for (int i = 0; i < tableHeads.length; i++) {
tableHeadName.add(tableHeads[i]);
}
/*初始化表格数据,这些数据实例运行来源于数据库中*/


// for (int i = 1; i <= 10; i++) {
//setText(String text);
//if(text.equals("")){

//}
String a=text;
cell = new Vector();
cell2=new Vector();
cell3=new Vector();
cell.add(a);
cell.add("");
cell.add("");
cell.add("");
cell.add("");
cell.add("");
row.add(cell);

cell2.add("");
cell2.add("");
cell2.add("");
cell2.add("");
cell2.add("");
cell2.add("");
row.add(cell2);

cell3.add("");
cell3.add("");
cell3.add("");
cell3.add("");
cell3.add("");
cell3.add("");
row.add(cell3);



// }

/*设置表格模型*/
tableModel.setDataVector(row, tableHeadName);
/*表格使用模型*/
JTable table = new JTable(tableModel);
table.setRowHeight(20);
/*new Cursor(1)设置鼠标指针样式,12为手形*/
table.setCursor(new Cursor(12));

JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setCursor(new Cursor(12));
table.setPreferredScrollableViewportSize(new Dimension(800,60));
this.add(scrollPane);
this.setSize(400, 300);
//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}


// TODO 自动生成方法存根

}



[img]http://bbs.cfanclub.net/hack.php?H_name-colony-cyid-16-job-viewphoto-aid-29-pid-240.html#p[/img]
一个简单的成绩管理系统,部分代码!象实现如图片似的,点“存入”,可以获取“学号”,放到表格相应的地方,问题是我点多少次“存入”都只能存在第一行第一列的那个空里!
一直没明白
if(arg0.getSource()==text1)
{


}
怎么在一个类的事件里,去进行另一个类,如上面Table3类的修改,删除,查询,语句都不知道放哪,放INSERT类的时间里吗?但很多方法不能用啊!很多表格组件不能用!
呵呵,后学问题多,请大侠门不吝赐教!

[解决办法]

Java code
import java.awt.Cursor; 
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

public class Insert extends JPanel implements ActionListener {

// JFrame frame;
JPanel panel1;
JPanel panel4;
JPanel panel2;
JPanel panel3;
JPanel panel;
JLabel label1;
JLabel label2;
JLabel label3;


JLabel label4;
JLabel label5;
JTextField text1;
JTextField text2;
JTextField text3;
JTextField text4;
JTextField text5;
JComboBox com;
JButton button1;
JButton button3;
JButton button2;
JButton button4;
JButton button5;
Table3 table3;//加一个Table3的成员变量 用来取得model
public Insert() {

// frame.setVisible(false);
panel3 = new JPanel();
panel1 = new JPanel();
panel2 = new JPanel();
panel4 = new JPanel();
label1 = new JLabel("学号");
label2 = new JLabel("姓名");
label3 = new JLabel("班级");
label4 = new JLabel("电话");
label5 = new JLabel("家庭住址");
text1 = new JTextField(10);
text1.addActionListener(this);
text2 = new JTextField(5);
text3 = new JTextField(5);
text4 = new JTextField(10);
text5 = new JTextField(20);
com = new JComboBox();
button1 = new JButton("完成");
button3 = new JButton("清空");
button2 = new JButton("取消");
button2.addActionListener(this);
button4 = new JButton("存入");
button4.addActionListener(this);
button5 = new JButton("清空");

button5.addActionListener(this);

com.addItem("男");
com.addItem("女");

this.setLayout(new GridLayout(3, 8));
panel1.add(label1);
panel1.add(text1);
panel1.add(label2);
panel1.add(text2);
panel1.add(com);
panel1.add(label3);
panel1.add(text3);
panel1.add(label4);
panel1.add(text4);
panel1.add(label5);
panel1.add(text5);
panel1.add(button4);
panel1.add(button5);
table3=new Table3(null,null);//Table3初始设置
panel3.add(table3);

panel2.add(button1);
panel2.add(button3);
panel2.add(button2);
this.add(panel1);
this.add(panel3);
this.add(panel2);

this.setSize(800, 600);
this.setLocation(300, 100);
this.setVisible(true);

// button1.addActionListener(new show());

}

public void actionPerformed(ActionEvent arg0) {
// 事件的触发
if (arg0.getSource() == text1) {

}

if (arg0.getSource() == button4) {

panel3.removeAll();
table3 = new Table3(text1.getText(),table3.getModel());//增加
panel3.add(table3);

panel3.updateUI();

}

if (arg0.getSource() == button5) {
text1.setText("");
text2.setText("");
text3.setText("");
text4.setText("");
text5.setText("");
}
if (arg0.getSource() == button2) {
this.disable();
}
// TODO Auto-generated method stub

}
public static void main(String[] args){
JFrame frame = new JFrame();
frame.setSize(800, 600);
frame.getContentPane().add(new Insert());
frame.setVisible(true);
}

}

class Table3 extends JPanel {
private DefaultTableModel model;
public Table3(String text,DefaultTableModel model) {//需要一个DefaultTableModel 取得原来的内容
/* 表格列向量 */
Vector cell= new Vector();//初始化
/* 表格行向量 */
Vector row = new Vector();
/* 声明表格模型 */
DefaultTableModel tableModel = new DefaultTableModel();
/* 声明表格头数组 */
String[] tableHeads = { "学号", "JAVA程序设计", "专业英语", "日语", "操作系统", "SQL2000" };
/* 将表格头转换过向量类型,以备表格模型使用 */
Vector tableHeadName = new Vector();

for (int i = 0; i < tableHeads.length; i++) {


tableHeadName.add(tableHeads[i]);
}
/* 初始化表格数据,这些数据实例运行来源于数据库中 */

// for (int i = 1; i <= 10; i++) {
// setText(String text);
// if(text.equals("")){
// }
String a = text;
if(model!=null){//追加新的内容
row = model.getDataVector();
cell.add(a);
cell.add("");
cell.add("");
cell.add("");
cell.add("");
cell.add("");
row.add(cell);
}
//cell = new Vector();
//cell2 = new Vector();
//cell3 = new Vector();

//cell2.add("");
//cell2.add("");
//cell2.add("");
//cell2.add("");
//cell2.add("");
//cell2.add("");
//row.add(cell2);
//
//cell3.add("");
//cell3.add("");
//cell3.add("");
//cell3.add("");
//cell3.add("");
//cell3.add("");
//row.add(cell3);

// }

/* 设置表格模型 */
tableModel.setDataVector(row, tableHeadName);
setModel(tableModel);//设定model
/* 表格使用模型 */
JTable table = new JTable(tableModel);
table.setRowHeight(20);
/* new Cursor(1)设置鼠标指针样式,12为手形 */
table.setCursor(new Cursor(12));

JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setCursor(new Cursor(12));
table.setPreferredScrollableViewportSize(new Dimension(800, 60));
this.add(scrollPane);
this.setSize(400, 300);
// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public DefaultTableModel getModel() {
return model;
}
public void setModel(DefaultTableModel model) {
this.model = model;
}



}


在你的代码的基础上实现了你说的目的 不过你还是好好看看swing你的代码写法很别扭。
给你加了一点我改变的地方的注释

读书人网 >J2SE开发

热点推荐