论坛和Java的新功能。我试图让我的JList在双击时作出响应,这是我完成的。 JList正在通过按下GUI中的按钮时运行的SQL查询填充。基于SQL查询,JList被填充,这也起作用。单击时JList值更改
如果我尝试通过单击按钮重新查询SQL来尝试更新JList,则会出现此问题。当我单击它时,更改最初显示在JList中,但是当我单击JList中的该选项时,它立即切换回最初的状态。当我双击看起来不正确的名称时,我在控制台中打印的值正确报告。所以它在控制台中具有正确的值,但JList中的渲染不正确。
我很感谢任何回应,我没有任何运气就梳理了论坛。我是Java的新手,所以我确信有很多不完美的代码。代码如下,请让我知道,如果你需要更多。谢谢。
public JPanel results(StringBuilder message)
{
StringBuilder[] options = {message};
showOption = new JList(options);
showOption.setLocation(300, 50);
showOption.setSize(140,100);
showOption.setVisibleRowCount(10);
textPanel.add(showOption);
showOption.revalidate();
showOption.repaint();
MouseListener mouseListener = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
//JList showOption = (JList) mouseEvent.getSource();
if (e.getClickCount() == 2) {
int index = showOption.locationToIndex(e.getPoint());
Object o = showOption.getModel().getElementAt(index);
System.out.println("Double-clicked on: " + o.toString());
}
}
};
showOption.addMouseListener(mouseListener);
return totalGUI;
}
public static void main (String args[])
{
//JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("[=] JTextField of Dreams [=]");
GUI_TextField demo = new GUI_TextField();
frame.setContentPane(demo.createContentPane());
//frame.setContentPane(demo.results(message));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(510, 400);
frame.setVisible(true);
}
谢谢!你的信息帮我解决了这个问题。我很欣赏这个例子和链接。我刚开始使用Java,这有很大帮助。再次感谢。 – robe0709
很高兴帮助;) – MadProgrammer