我正在使用Eclipse& Swing来创建这个项目。我正在尝试填充JTable。我已经在方法Display_UserInfo_in_JTable()
中从数据库中获取了值。
但我不知道如何使用此方法填充我的JTable。我认为该方法应该有一个返回类型,但我不知道我该怎么办?
package view;
import controller.*;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class TableView {
private JFrame frame;
private JTable table;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TableView window = new TableView();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
private ArrayList<UserInfo> UserInfoList()
{
try
{
UserInfo userinfo;
ArrayList<UserInfo> UserInfoList = new ArrayList<UserInfo>();
Connection sqlCon = DB_con.getSQLConnection();
PreparedStatement ps = sqlCon.prepareStatement("select id,name,username,contact,gender from temp");
ResultSet rs = ps.executeQuery();
while(rs.next())
{
userinfo = new UserInfo(
rs.getInt("id"),
rs.getString("name"),
rs.getString("username"),
rs.getString("contact"),
rs.getString("gender")
);
UserInfoList.add(userinfo);
}
return UserInfoList;
}
catch(Exception ex)
{
System.out.println(ex.toString());
return null;
}
}
public void Display_UserInfo_in_JTable()
{
try
{
ArrayList<UserInfo> list = UserInfoList();
DefaultTableModel dtm = new DefaultTableModel();
Object row[] = new Object[5];
for(int i = 0 ; i < list.size(); i++)
{
row[0] = list.get(i).getId();
row[1] = list.get(i).getName();
row[2] = list.get(i).getUsername();
row[3] = list.get(i).getContact();
row[4] = list.get(i).getGender();
dtm.addRow(row);
}
table.setModel(dtm);
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
/**
* Create the application.
*/
public TableView() {
initialize();
Display_UserInfo_in_JTable();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 598, 402);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(10, 11, 562, 341);
frame.getContentPane().add(panel);
panel.setLayout(null);
table = new JTable();
//table.setBounds(49, 163, 92, -97);
JScrollPane jsp = new JScrollPane(table);
panel.add(table);
}
}
我已在方法table.setModel(dtm);
中添加了Display_UserInfo_in_JTable()
,仍然无法获得结果。
答案 0 :(得分:2)
您的代码存在太多问题:
class SecondStage:
def __init__(self, winner):
pass
#here goes some scripts
永远不会被调用(或至少你没有发布该代码)对于第5点,要么使用标准布局,要么相应地设置边界。