Я створив jtable у формі gui в Intellij, і я не бачу даних. Найдивніше, що коли я використовую це, створюю форму в intellij код працює.
я використав найпоширеніший приклад
String[] columnNames = {"First Name", "Last Name"};
Object[][] data = {{"Kathy", "Smith"},{"John", "Doe"}
і потім
JTable table = new JTable(data, columnNames);
Але я не отримую даних.
Це через менеджера макетів?
будь-яка допомога в продовженні роботи з intellij gui та jtable?
будь-який хороший приклад jtable + gui форма intellij?
Відповіді:
9 для відповіді № 1При використанні IDEA GUI Designer, JTable створюється для вас автоматично, якщо у вас є new JTable(...)
у вашому коді він перекриває об’єкт таблиці, створений IDEA, і всі властивості, налаштовані для таблиці в Дизайнері, будуть втрачені.
Отже, у вас тут є два підходи. Одне - покластися на IDEA для створення таблиці та встановлення її властивостей, а потім використовувати table.setModel(dataModel);
для надання даних у вашу таблицю з dataModel.
Другий підхід полягає в тому, щоб динамічно створити таблицю зі свого коду, а потім додати цю таблицю до наявної JScrollPane або іншої панелі форми через scrollPane.setViewportView(myTable);
.
IDEA також має більш вдосконалений підхід Спеціальні створення. Якщо увімкнути цей прапорець для JTable у формі, додається IDEA createUIComponents()
методом до зв'язаного класу, де ви створюєте цей компонент вручну ... = new JTable(...)
.
Ти можеш завантажити повний зразок проекту і експериментувати з різними підходами.
1 для відповіді № 2
Для мене це працює в IntelliJ:
package swing;
import javax.swing.*;
/**
* JTableTest
* User: Michael
* Date: 11/7/10
* Time: 4:49 PM
*/
public class JTableTest
{
public static void main(String[] args)
{
JFrame frame = new JFrame("JTable Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTable table = createTable();
JScrollPane scrollPane = new JScrollPane(table);
frame.getContentPane().add(scrollPane);
frame.pack();
frame.setVisible(true);
}
public static JTable createTable()
{
String[] columnNames = {"First Name", "Last Name"};
Object[][] data = {{"Kathy", "Smith"},{"John", "Doe"}};
JTable table = new JTable(data, columnNames);
table.setFillsViewportHeight(true);
return table;
}
}