2011-08-21 5 views
0

Я создаю форму JPanel, которая будет содержать несколько других JPanels. Я хочу разместить это внутри JScrollPane. Затем я хочу разместить JScrollPane в JTabbedPane как одну из вкладок. У меня возникли проблемы, хотя - моя форма JPanel ветров расширяется при размещении в ScrollPane даже если я установить размер, PreferredSize, MaximumSize и т.д.JPanel Form расширяется, чтобы заполнить цель JScrollpane - поражения

+2

Это может быть я, но мне очень трудно различить то, что вы пытаетесь достичь, и то, что вы получаете, поскольку описания просто не рисуют адекватную визуальную картину для меня. Возможно, вы можете загружать изображения того, что вы хотите, что вы получаете, и небольшую компилируемую программу, чтобы продемонстрировать, что вы пытаетесь сделать. Возможно, вы хотите вложить свою «форму JPanel» в другую JPanel с помощью соответствующего менеджера макетов, а затем добавить этот другой JPanel в виде просмотра в виде JScrollpane. –

+0

Ниже приведен пример [http://stackoverflow.com/questions/3174765/variable-layout-in-swing/3175280#3175280] нескольких панелей в панели прокрутки, которая может вас запустить. – trashgod

ответ

1
public class test 
{ 

private static JFrame frame = new JFrame(); 
private static JTabbedPane pane0 = new JTabbedPane(); 
private static JScrollPane pane1 = new JScrollPane(); 
private static JPanel pane2 = new JPanel(); 
//add the rest of your JPanels here 

public static void main(String[] args) 
{ 
    frame.setSize(400,400); 
    //add all the other attributes here 
    frame.add(pane0); 
    pane0.add(pane1); 
    pane1.add(pane2); 
    //go ahead and add the rest of your panels here 
    frame.pack();//resizes the frame so that its subcomponents fit well inside. 
} 
}//this last bracket is for the class itself. Sorry i couldn't tab everything the right   //way. 

Это то, что вы пытаетесь сделать? Вот что я понял из вашего вопроса. Кстати, если ваш JPanel расширяется, измените размер своего фрейма.

+2

Я ожидал бы ['pack()'] (http://download.oracle.com/javase/6/docs/api/java/awt/Window.html#pack%28%29) фрейма 'Window' «чтобы соответствовать предпочтительным размерам и макетам его подкомпонентов». – trashgod

+0

Вы правы, это будет отлично работать, я думаю. Я продолжу и отредактирую свой ответ. Спасибо за ввод. – corecase

+0

Да, в значительной степени. Я проследил мою проблему с менеджером GridLayout. Он расширяется, чтобы заполнить ВСЕ свободное пространство, о котором я не знал. Итак, вот мой вопрос: я хочу создать JPanel, который содержит три другие формы JPanel, созданные с помощью менеджера GridLayout. Но полоса прокрутки никогда не появляется, потому что они всегда автоматически подстраиваются под размер. @Corecase –

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