Как добавить JTable в JFrame во время выполнения? - PullRequest
1 голос
/ 31 октября 2011

Я использую JFrame & JPanel для создания фрейма. JFrame содержит комбинированные списки, флажки, JLabels и т. Д. Для JPanel установлено значение «null», потому что я использую setBounds (int, int, int, int) для установки расположение компонентов на JFrame.

Существует также JButton (названный «Submit»). На кнопку submit я добавил actionListener, так что если я нажму на эту кнопку, таблица будет сгенерирована во фрейме (во время выполнения).

JTable успешно отображается в JFrame, но имя столбцов таблицы не отображается вместе с JFrame (при нажатии кнопки подтверждения отображаются только данные таблицы).

Я также использую setBounds с JTable. Что мне делать в этом случае?

submitButton.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
       Object ColumnName[] = {"Document Name", "Modified Date", "Size(in MB)"};
       Object data[][] = { {"test.txt", "24-Oct-2011", "540"}};
       table = new JTable(data,ColumnName);
       table.setBounds(20,230,330,100);
       panel.add(table);
       panel.repaint();
       panel.revalidate();
     }
});

Дайте мне все ваши ценные предложения в ближайшее время. Спасибо.

Ответы [ 3 ]

2 голосов
/ 31 октября 2011

может работает revalidate(); метод панели. call после установки таблицы на панели.
но JScrollPane лучший способ сделать это.

2 голосов
/ 31 октября 2011

Я думаю, что вы не могли:

  1. Использовать setBounds(int, int, int, int), потому что это работа для LayoutManager
  2. Воссоздать JTable во время выполнения.Просто внедрите DefalutTableModel, там вы можете добавить / удалить TableRows, сбросить TableModel - все изменения немедленно отображаются в JTable.

И вы можете:

  1. (как уже упоминалось на обоих плакатах) поместить JTable в JScrollPane.
  2. Изучите примеры из таблицы и множество примеров, связанных с Swing здесь .
1 голос
/ 31 октября 2011

Сначала вам нужно будет добавить JTable в JScrollPane, а затем добавить эту JScrollPane на главную панель.

JScrollPane jsp = new JScrollPane(jtable);

Посмотрите на это: JTable

РЕДАКТИРОВАТЬ: эта тема обсуждает ту же проблему: Столбцы Jtable

...