2013-10-04 7 views
0

Это мой первый опыт работы над Swing. Наверное, я делаю что-то серьезно неправильно.
У меня есть один пользовательский интерфейс с вкладками, где каждая вкладка JPanel (эта вкладка добавлена ​​к JTabbedPane). Я добавляю число JTextField s в том, что JPanel на основе ввода пользователем. Мне нужно, чтобы JPanel прокручивался. Я попробовал следующее решение:JScrollPane не работает

  • Добавить Jscrollpane в Tab
  • Добавить Jpanel innerPanel в JscrollPane
  • Добавить все текстовые поля для innerPanel

Там нет отображенные TextFields.

public Tab extends JPanel { 

    private TipTailoringTab() { 
     JPanel innerPanel =new JPanel(); 

     int y_cord = 20; 
     for (int i = 0; i < USER_INPUT; i++) { 
       JTextField TextField = new JTextField(); 
       TextField.setBounds(42, y_cord, 100, 20); 
       innerPanel.add(TextField); 
       y_cord = y_cord + 40; 
     } 
     Dimension preferredSize = new Dimension(400, 600); 
     innerPanel.setPreferredSize(preferredSize); 
     JScrollPane sPane = new JScrollPane(innerPanel); 
     Dimension preferredSize1 = new Dimension(400, 300); 
     sPane.setPreferredSize(preferredSize1); 
     this.add(sPane); 
    } 
} 

Любая помощь очень ценится.

EDIT
для каждого цикла Я создаю один TextField, один слайдер, на этикетке. Я хочу следующую структуру вертикально прокручивать при большом п
Slider1 Label1 поля 1
Slider2 Label2 поля 2

TextFieldn Slidern Labeln

+5

1) Вы захотите узнать, как использовать диспетчеров макетов и использовать их с максимальной способностью. 2) Вы не хотите устанавливать границы какого-либо компонента, и меньше всего на JPanel, который использует FlowLayout по умолчанию. 3) Если все еще застрял, создайте и опубликуйте [sscce] (http://sscce.org). –

+1

Согласовано с Hovercraft, панель scoll в значительной степени опирается на информацию, генерируемую макетом просмотров. – MadProgrammer

+0

Я готов внести вовремя, но у меня есть представление сегодня, и это единственная оставшаяся часть. Есть ли временное решение для текущего решения? Я пересмотрю и улучшу свое решение. – PhantomM

ответ

1

Вот очень простой пример. Я устанавливаю предпочтительные размеры, чтобы заставить полосы прокрутки становиться видимыми/необходимыми. Любые вопросы просто спрашивают.

import java.awt.BorderLayout; 
import java.awt.Dimension; 
import javax.swing.*; 

public class Test { 
    private static final int USER_INPUT = 10; 

    public Test() { 
     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setResizable(false); 


     JTabbedPane tabs = new JTabbedPane(); 
     tabs.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); 
     for (int i = 0; i < 5; i++) { 
      tabs.addTab("Tab"+i, new TabPanel()); 
     } 

     frame.add(tabs); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

    class TabPanel extends JPanel {  
     public TabPanel() { 
      JPanel innerPanel = new JPanel(); 
      innerPanel.setLayout(new BoxLayout(innerPanel, BoxLayout.Y_AXIS)); 

      for (int i = 0; i < USER_INPUT; i++) { 
       JPanel p = new JPanel(new BorderLayout()); 
       JLabel label = new JLabel("Label"+i); 
       JTextField textArea = new JTextField(); 
       p.add(label, BorderLayout.NORTH); 
       p.add(textArea, BorderLayout.CENTER); 
       innerPanel.add(p); 
      } 

      JScrollPane scrollPane = new JScrollPane(innerPanel); 
      scrollPane.setPreferredSize(new Dimension(400, 200)); 
      this.add(scrollPane); 
     } 
    } 

    public static void main(String[] args) { 
     new Test(); 
    } 
} 
+0

Прокрутка включена, но есть и другие проблемы. Я хочу отображать одно текстовое поле, один слайдер и один ярлык в каждой строке. Теперь все искажено. Все текстовые поля, ползунки и метки находятся в одном вертикальном столбце. – PhantomM

+0

Подождите, что? Итак, каждая вкладка имеет только одно текстовое поле и что текстовое поле прокручивается? А над прокручиваемым текстовым полем есть ярлык? – Smitty

+0

Нет, я отредактировал вопрос, чтобы объяснить структуру. – PhantomM

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