Как добавить Jtable и Jtextpane в одном кадре в Java? - PullRequest
0 голосов
/ 17 июля 2010

Я хочу показать jtable, содержащий информацию о моем курсе, он работает нормально, так как я показал отдельную jtable .... Теперь проблема в том, что я хочу показать jtable (содержащий информацию о моем курсе) слева, наряду сJtextPane в одном кадре на правой стороне, так что пользователь может выбрать элемент из jtable и вставить его в правой части (JTextPane) в Java ........... Я не знаю, как это сделать .....Любая помощь будет оценена ....

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 19 июля 2010

Например:

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);
}
}

Совет: прочитайте превосходное Использование учебного пособия по Swing Components , есть ответы почти на все основные вопросы и много примеров.

0 голосов
/ 17 июля 2010

Из статьи Как использовать таблицы , я бы начал с TableSelectionDemo. Он показывает, как обновить JTextArea в ответ на ListSelectionEvent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...