приложение с проблемной формой обновления таблицы запущенных форм на Java

#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. ДА, ДА, это то, что я хотел. Большое спасибо, мой друг :))