我想顯示jtable包含我的課程信息,它工作正常,因爲我已經顯示了一個單獨的jtable .... 現在的問題是,我想顯示jtable(包含我的課程信息)在左側,與JtextPane在右側的單個框架中,以便用戶可以從jtable中選擇項目並將其粘貼到Java中的右側(JTextPane)........... 我不知道該怎麼做.... .. 任何幫助,將不勝感激....如何在java中的單個框架中添加jtable和Jtextpane?
由於提前
我想顯示jtable包含我的課程信息,它工作正常,因爲我已經顯示了一個單獨的jtable .... 現在的問題是,我想顯示jtable(包含我的課程信息)在左側,與JtextPane在右側的單個框架中,以便用戶可以從jtable中選擇項目並將其粘貼到Java中的右側(JTextPane)........... 我不知道該怎麼做.... .. 任何幫助,將不勝感激....如何在java中的單個框架中添加jtable和Jtextpane?
由於提前
從文章How to Use Tables,我會用TableSelectionDemo
開始。它顯示瞭如何更新JTextArea
以響應ListSelectionEvent
。
例如:
public class ListTest extends JPanel{
private JTable table;
private String COLUMN1 = "COLUMN1";
private JTextArea myTA;
public ListTest() {
table = new JTable(new Object[][]{{"1"}, {"2"}}, new Object[]{COLUMN1});
TableColumn col = table.getColumn(COLUMN1);
col.setIdentifier(COLUMN1);
col.setHeaderValue("Data");
table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
@Override
public void valueChanged(ListSelectionEvent e){
if (!e.getValueIsAdjusting()){
int selRow = table.getSelectedRow();
final Object data = selRow >= 0 ? table.getModel().getValueAt(selRow, 0) : null;
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run(){
if (data != null){
myTA.setText(data.toString());
}
else{
myTA.setText("");
}
}
});
}
}
});
setLayout(new BorderLayout());
JScrollPane scroll = new JScrollPane(table);
scroll.setPreferredSize(new Dimension(50, 200));
add(scroll, BorderLayout.WEST);
add(new JScrollPane(myTA = new JTextArea()), BorderLayout.CENTER);
}
public static void main(String[] args){
JFrame frame = new JFrame("test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ListTest listTest = new ListTest();
// Add content to the window.
frame.add(listTest);
// Display the window.
frame.pack();
frame.setSize(400, 200);
frame.setVisible(true);
}
}
一個建議:閱讀優秀Using Swing Components教程,還有幾乎所有的基本問題和一個例子很多的響應。
沒有足夠的點,我認爲 – wax 2010-07-17 20:50:16