public class T extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jPanel = null;
private JTextField jTextField = null;
private JTextField jTextField1 = null;
private JButton jButton = null;
private JButton jButton1 = null;
private JButton jButton2 = null;
private JTable jTable = null;
private DefaultTableModel tableModel = null;
private JPanel getJPanel() {
if (jPanel == null) {
JLabel jLabel1 = new JLabel();
jLabel1setBounds(new Rectangle(30, 50, 80, 25));
jLabel1setText("请输入ISBN:");
JLabel jLabel = new JLabel();
jLabelsetBounds(new Rectangle(30, 20, 80, 25));
jLabelsetText("请输入书名:");
jPanel = new JPanel();
jPanelsetLayout(null);
jPanelsetPreferredSize(new Dimension(1, 120));
jPaneladd(jLabel);
jPaneladd(jLabel1);
jPaneladd(getJTextField());
jPaneladd(getJTextField1());
jPaneladd(getJButton());
jPaneladd(getJButton1());
jPaneladd(getJButton2());
}
return jPanel;
}
private JTextField getJTextField() {
if (jTextField == null) {
jTextField = new JTextField();
jTextFieldsetBounds(new Rectangle(120, 20, 140, 25));
}
return jTextField;
}
private JTextField getJTextField1() {
if (jTextField1 == null) {
jTextField1 = new JTextField();
jTextField1setBounds(new Rectangle(120, 50, 140, 25));
}
return jTextField1;
}
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButtonsetBounds(new Rectangle(270, 20, 60, 25));
jButtonsetText("显示");
jButtonaddActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
/ 修改处 /
}
});
}
return jButton;
}
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1setBounds(new Rectangle(270, 50, 60, 25));
jButton1setText("显示");
jButton1addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
/ 修改处 /
}
});
}
return jButton1;
}
private JButton getJButton2() {
if (jButton2 == null) {
jButton2 = new JButton();
jButton2setBounds(new Rectangle(240, 80, 90, 30));
jButton2setText("显示全部");
jButton2addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
/
修改处此处只要改下面一行,换成从数据库读就行
应该在DAO层加一个查询全部的方法
public List<Titles> getAll();具体实现自己写。
把114行的代码改成:List<Titles> lists = new TitleDaoImpl()getAll();
/
List<Titles> lists = Titleslist();
// 将表行数设为0行,防止异常
tableModelsetRowCount(0);
for (int i = 0; i < listssize(); i++) { // 当每有一个Titles对象就添加一行
tableModeladdRow(new Object[] {});
}
Titles instance = null;
Object obj = null;
Object name = null;
for (int i = 0; i < tableModelgetRowCount(); i++) { // 行循环
instance = listsget(i); // 为当前Titles对象赋值
for (int j = 0; j < tableModelgetColumnCount(); j++) {
name = tableModelgetColumnName(j);
if (nameequals("ISBN")) {
obj = instancegetISBN();
} else if (nameequals("title")) {
obj = instancegetTitle();
} else if (nameequals("publisher")) {
obj = instancegetPublisher();
} else if (nameequals("date")) {
obj = instancegetDate();
} else if (nameequals("price")) {
obj = instancegetPrice();
} else {
obj = "";
}
tableModelsetValueAt(obj, i, j);
}
}
}
});
}
return jButton2;
}
private JPanel getJPanel1() {
JScrollPane jScrollPane = new JScrollPane();
jScrollPanesetViewportView(getJTable());
JPanel panel = new JPanel(new BorderLayout());
paneladd(jScrollPane, BorderLayoutCENTER);
return panel;
}
private JTable getJTable() {
if (jTable == null) {
// 获得Titles类里的字段,一个字段在JTable中应该表现为一列
Field[] fields = TitlesclassgetDeclaredFields();
// 将字段名保存为列名数组为DefaultTableModel所用
Object[] columnNames = new Object[fieldslength];
for (int i = 0; i < fieldslength; i++) {
columnNames[i] = fields[i]getName();
}
tableModel = new DefaultTableModel(columnNames, 0);
jTable = new JTable(tableModel);
}
return jTable;
}
public static void main(String[] args) {
SwingUtilitiesinvokeLater(new Runnable() {
public void run() {
T thisClass = new T();
thisClasssetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
thisClasssetVisible(true);
}
});
}
public T() {
super();
setSize(580, 475);
getContentPane()add(getJPanel(), BorderLayoutSOUTH);
getContentPane()add(getJPanel1(), BorderLayoutCENTER);
}
}
jTable 不能像C#一样有数据绑定
但是你可以这样 jTableDefaultTableMode = Array[][] // 具体的记不清了
就是1个2维数组 或着一个嵌套 ArrayList
饿~~不知道你知不知道vector这个接口!!
需要三个东西!!
1首先,你需要先画jscrollPanel你只画jtable会出错!!必须有滚动条。
2在其上边画出Jtable!
3倒入import javaxswingtableDefaultTableModel;包
4倒入import javautil;包
5不知道你会写jdbc吗???要显示数据库里的东西!要写jdbc的~~
6如果写好!,实例化jdbc(db),DefaultTableModel(model)!!!
很长很长~~~~~你需要在实例化出来三个vector,分别是head,data和v(最后一个随便命名!)
然后写一条sql去查询数据库!将查找出来的数据放入vector v中,再将v放入vector data中。然后将data和head放入modelsetDataVector(data, head);必须先放data再放head!!最后将model放入到Jtable中!!
再在最前边的主函数里调用这个东西!!去刷新jtable 就行!!
你先研究~~有什么不会的再问我吧!!呵呵~~~我的qq:14824989
过程如下:
1、建立按钮的事件响应方法,调用以下代码功能:
2、通过JDBC或其它方式连接数据库,执行查询,获取结果
3、将返回结果转换为一个二维数组,作为参数创建JTable
当然要功能更完善,以上方法有很多方面需要考虑和修改,如进行模块划分、使用TableModel而不是数组显示JTable、表头的显示等,这些需要根据目的逐个改进,但大体过程基本一样。
1、windowOpened()这个窗体触发事件,
2、建立一个数据显示方法,然后可以调用这个方法,把数据添加到数据库里面,然后再调用这个方法,就可以实现刷新显示的功能了
3、构建一个数据库连接类,最好是PUBLIC
STATIC的,这样可以直接调用到
例:PUBLIC
STATIC
CONNECTION
CONN(){
数据库连接
return
返回值;
}
4、遵守代码书写规范
以上就是关于我用JAVA的swing创建了一个窗口程序,拖了一个jTable控件在窗体上,怎样把数据库中的内容显示在Table上全部的内容,包括:我用JAVA的swing创建了一个窗口程序,拖了一个jTable控件在窗体上,怎样把数据库中的内容显示在Table上、jTable如何绑定数据库显示数据、从数据库中查询出数据怎么显示到JTable里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)