2012-06-20 2 views
1

Моя проблема заключается в том, что JScrollPane не показывает JTable внутри него. Когда я инициализирую таблицу без JScrollPane, все работает отлично.Как заставить JScrollPane не скрывать JTable?

Как сделать JScrollPane не скрыть JTable?

private void initComponents() { 
    setLayout(new GroupLayout()); 
    add(getJComboBox0(), new Constraints(new Leading(24, 284, 12, 12), new Leading(45, 10, 10))); 
    add(getJLabel0(), new Constraints(new Leading(24, 12, 12), new Leading(17, 12, 12))); 
    add(getJButton1(), new Constraints(new Leading(320, 12, 12), new Leading(86, 10, 10))); 
    add(getJButton0(), new Constraints(new Leading(320, 126, 12, 12), new Leading(45, 12, 12))); 
    add(getJScrollPane1(), new Constraints(new Leading(25, 282, 12, 12), new Bilateral(82, 12, 26, 403))); 
    setSize(1200, 650); 
} 

private JScrollPane getJScrollPane1() { 
    if (jScrollPane1 == null) { 

     jScrollPane1 = new JScrollPane(); 
     jScrollPane1.setViewportView(getJTable1()); 
    } 
    return jScrollPane1; 
} 

private JTable getJTable1() { 
    if (testCaseTable == null) { 
     ProjectTableModel ptm =new ProjectTableModel(); 
     testCaseTable = new JTable(); 
     testCaseTable.setModel(ptm); 


    } 
    return testCaseTable; 
} 
+2

Для лучшей помощи раньше, опубликовать [SSCCE] (http://sscce.org/). –

+1

Хотите поделиться своим кодом? – tofarr

+0

Скопируйте код в [официальный учебник] (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#show) – Robin

ответ

1

Его трудно ответить, не видя ваш код, но убедитесь, что вы добавляете в свой JScrollPaneJFrame, а не JTable.

Таким образом, для таблицы без прокрутки вы это делаете ...

add(myTable); 

и добавить скроллинг вы это делаете ...

add(new JScrollPane(myTable)); 

Теперь, когда я вижу свой код, я бы изменить эту строку ...

jScrollPane1 = new JScrollPane(); 
jScrollPane1.setViewportView(getJTable1()); 

Чтобы просто это ...

jScrollPane1 = new JScrollPane(getJTable1()); 

Кроме того, как отметил @alain, следующая строка не должна составить ...

setLayout(new GroupLayout()); 

Так почему бы не изменить его к этому, а затем дать ему попробовать .. .

setLayout(new GroupLayout(this)); 
+0

Нет ... Нет эффекта – Swemack

+1

, тогда опубликуйте SSCCE – mKorbel

+0

Так что же происходит? Вы видите полосы прокрутки, или вообще ничего? И как вы показываете свой JFrame - вы вызываете 'pack()' и 'setVisible (true)' где-то после вызова 'initComponents()'? – wattostudios

1

код вы предоставите не компилируется:

setLayout(new GroupLayout()); 

Там нет пустого конструктора для class GroupLayout.

насчет замены, что с:

setLayout(new GridLayout()); 
+0

nope ... он просто полностью раздувается ... – Swemack

+1

Как насчет того, чтобы сменить его на 'setLayout (new GroupLayout (this));'? Точка @alain пытается сделать так, что ваш код даже не компилируется. Обратитесь к документам API Java по адресу http://docs.oracle.com/javase/7/docs/api/javax/swing/GroupLayout.html, чтобы узнать, как использовать GroupLayout. – wattostudios

+2

@Swemack Можете ли вы дать нам реальный код, потому что вы obvioulsy не используете то, что вы вставили, или не используете компонент Swing ... –

Смежные вопросы