#java #forms #jtable #jscrollpane
#java #формы #jtable #jscrollpane
Вопрос:
Привет, мне нужна ваша помощь по поводу кода, приведенного ниже. я использую netbeans, у меня есть пользовательский интерфейс, и мне нужно обновить существующую область прокрутки с помощью этой таблицы, которую я создал динамически, но я не могу найти какой-либо способ сделать это за последние 3 дня, не могли бы вы помочь мне на этом этапе?
dbcon.Connect();
String[] columnNames = {"First Name",
"Last Name",
"Sport",
"# of Years",
"Vegetarian"};
Object[][] data = {
{"Kathy", "Smith",
"Snowboarding", new Integer(5), new Boolean(false)},
{"John", "Doe",
"Rowing", new Integer(3), new Boolean(true)},
{"Sue", "Black",
"Knitting", new Integer(2), new Boolean(false)},
{"Jane", "White",
"Speed reading", new Integer(20), new Boolean(true)},
{"Joe", "Brown",
"Pool", new Integer(10), new Boolean(false)}};
DefaultTableModel dtm = new DefaultTableModel(data,columnNames);
JTable table = new JTable(dtm);
// i created this table and can't update an existing Jscrollpane :(
точно, мне нужен способ пополнить таблицу или перерисовать новую таблицу в существующую панель прокрутки
Есть идеи?
Комментарии:
1. Пример , из которого (большая часть) это было скопировано, работает правильно. Если это реальный вопрос, пожалуйста, уточните.
Ответ №1:
Вы пробовали просматривать документацию по JScrollPane? Я думаю, что выполнение чего-то подобного должно сработать:
DefaultTableModel dtm = new DefaultTableModel(data,columnNames);
table = new JTable(dtm);
JScrollPane scrollPane = new JScrollPane(table);
this.add(scrollPane, BorderLayout.CENTER);
Комментарии:
1. в этом проблема, я не могу использовать это.добавить в netbeans это не позволяет мне этого делать, потому что я автоматически изменяю коды пользовательского интерфейса, и мне нужно обновить существующую область прокрутки или таблицу
2. @Utku если вам мешает «функция» IDE, не используйте ее 😉 @Kyle это не решение проблемы, как я понял (мое понимание, конечно, может быть неправильным) это: речь идет о динамическом обновлении / настройке данных в таком контексте, что воссоздание представления является неправильным.
Ответ №2:
Если я правильно прочитал вопрос, плакат хочет обновить «существующую» панель прокрутки.
Если это так, то вы просто делаете:
scrollPane.setViewportView( table );
Однако, если у вас уже есть таблица в области прокрутки, вам даже не нужно создавать новую JTable. Все, что вам нужно сделать, это обновить модель таблицы:
DefaultTableModel model = new DefaultTableModel(...);
table.setModel( model ):
Комментарии:
1. ДА, ДА, это то, что я хотел. Большое спасибо, мой друг :))