ユーザーがテーブルで選択したものを追跡する次のコードがあります。ユーザーがチャット会話を選択した後、JPanel
テーブルを含むを非表示にしJPanel
、代わりにチャット会話を含むを表示します。これを行うための現在のコードを参照してください。
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
JTable target = (JTable) e.getSource();
int row = target.getSelectedRow();
int column = target.getSelectedColumn();
// loop through all elements in the table
for (int i = 0; i < listmodel.size(); i++) {
// get the table item associated with the current element
final Object object = listmodel.get(i);
if (object instanceof ListItem) {
ListItem listitem = (ListItem) object;
if (table.getValueAt(table.getSelectedRow(), 0).toString() == listitem.getText()) {
// Show the chat conversation (this is where the GUI for some reason does not fully load)
SwingUtilities.invokeLater(new Runnable() {
public void run() {
pnlMainTableWrapper.setVisible(false); // Contains the table
pnlChatMsgs.setVisible(true);
pnlSendMsg.setVisible(true);
pnlRight.setVisible(true);
pnlChatMsgs.validate();
pnlChatMsgs.repaint();
}
});
}
}
}
}
}
});
奇妙な理由により、 のすべての GUI コンポーネントJPanel
pnlChatMsgs
がロードされているわけではありません。これらのコンポーネントはただ白いだけです。
この動作の原因は何ですか?