问题描述
我想通过 JTable
组件的 JRadioButton
方法对 ActionListener
进行排序。当我单击“名称”时,表格将按名称排序。但是现在我点击名称单选按钮,一切都是空白。
查询数据库的主要代码一切正常。所以我在向 JScrollPane
添加另一个表时遇到问题。为简单起见,我删除了所有与导入相关的代码。但是除了单选按钮的动作侦听器之外,所有代码都可以正常工作。
public class JtableDemo extends JPanel implements ActionListener {
private static JFrame frame;
JTextField textField;
JScrollPane scrollPanel;
JRadioButton nameButton = new JRadioButton("name");
JRadioButton departmentButton =new JRadioButton("department");
JRadioButton salaryButton =new JRadioButton("Salary");
JRadioButton dateButton = new JRadioButton("date");
ButtonGroup orderbyButtonGroup = new ButtonGroup();
JTable jTable = new JTable();
String orderbyname = "select * from emp where salary >6000 order by name";
String orderbydepartment = "select * from emp where salary >6000 order by department";
String orderbysalary = "select * from emp where salary >6000 order by salary";
public JtableDemo() throws sqlException {
nameButton.addActionListener(this);
departmentButton.addActionListener(this);
salaryButton.addActionListener(this);
dateButton.addActionListener(this);
orderbyButtonGroup.add(nameButton);
orderbyButtonGroup.add(departmentButton);
orderbyButtonGroup.add(salaryButton);
orderbyButtonGroup.add(dateButton);
this.add(nameButton);
this.add(departmentButton);
this.add(salaryButton);
this.add(dateButton);
String query = "select * from emp where salary>? ";
PreparedStatement statement = Main.connection.prepareStatement(query);
statement.setInt(1,6000);
//statement.setString(2,"id");
ResultSet resultSet = statement.executeQuery();
jTable.setModel(dbutils.resultSetToTableModel(resultSet));
jTable.setPreferredScrollableViewportSize(new Dimension(500,200));
jTable.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(jTable);
add(scrollPane);
String title = "all emp's salary less than 5600";
this.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),title,TitledBorder.CENTER,TitledBorder.TOP));
}
public static void createandShowGUI() throws sqlException {
frame = new JFrame();
frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
JtableDemo newContentPane = new JtableDemo();
newContentPane.setopaque(true);
frame.setContentPane(newContentPane);
frame.pack();
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==nameButton) {
try {
JScrollPane scrollPane = new JScrollPane(jTable);
PreparedStatement orderbystatement = Main.connection.prepareStatement(orderbyname);
//orderbystatement.setString(1,"name");
ResultSet resultSet = orderbystatement.executeQuery();
jTable.setModel(dbutils.resultSetToTableModel(resultSet));
jTable.setPreferredScrollableViewportSize(new Dimension(500,200));
jTable.setFillsViewportHeight(true);
} catch (sqlException throwables) {
throwables.printstacktrace();
} }
if(e.getSource()==departmentButton) { System.out.println("testdepartmentButton"); }
if(e.getSource()==salaryButton) { System.out.println("testsalaryButton"); }
if(e.getSource()==dateButton) { System.out.println("testdateButton"); }
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)