Панель прокрутки в многопанельной вкладке JTabbedpanes

Добрый день всем,

У меня есть JTabbedPane, каждая вкладка которого имеет свой класс. Каждый из его ActionListener также имеет свой отдельный класс. Один ActionPerformed добавляет JTable со столбцами по истечении определенного количества дней.

Это одна вкладка:

public class FirstTab {

private JPanel mainPane;
private JPanel weeksPane;
private JButton setWeeksB;
private JLabel matchCheck;
private JPanel modulesPane;

public FirstTab() {

    mainPane = new JPanel();
    weeksPane = new JPanel();
    setWeeksB = new JButton("Voeg weken toe");
    matchCheck = new JLabel(); 
    //mainPane.setLayout(new FlowLayout());
    mainPane.add(createSchoolDaysPane());
}


public JPanel createSchoolDaysPane() {

    JPanel schoolDaysPane = new JPanel(); 

    DefaultTableModel weeksModelTable = new DefaultTableModel(); 
    weeksModelTable.addColumn("Week nummer");
    weeksModelTable.addColumn("Dagen");
    JTable weeksTable = new JTable(weeksModelTable);
    JLabel schoolDaysL = new JLabel("Geef hier het aantal schooldagen (max 200) van het jaar in: ");
    JTextField schoolDaysF = new JTextField(10);
        SetWeeksPaneAction AWFA = new SetWeeksPaneAction(mainPane, weeksPane, weeksModelTable, weeksTable, matchCheck, setWeeksB);
        schoolDaysF.addActionListener(AWFA);
    JLabel schoolDaysGivenL = new JLabel();
    schoolDaysPane.setLayout(new BoxLayout(schoolDaysPane, BoxLayout.Y_AXIS));
    schoolDaysPane.add(schoolDaysL);
    schoolDaysPane.add(schoolDaysF);   
    schoolDaysPane.add(schoolDaysGivenL);

    return schoolDaysPane;
}


public JPanel getTab() { 

    return mainPane; 
}

Эта вкладка содержит две панели, показанная таблица JTable добавляется на панель после установки количества дней.

графический интерфейс пользователя

Как вы заметили, столбцы не видны (но они установлены), поэтому мне сказали использовать вместо этого ScrollPane.

Однако я не могу пройти через ScrollPane в моем JTabbed, потому что через него проходит нормальная панель ('MainPane' - контейнер):

public EindopdrachtJava3() { 

    frame = new JFrame();
    jtp = new JTabbedPane();
    firstTab = new FirstTab();                      
    secondTab = new SecondTab();                  

    jtp.addTab("Modules", firstTab.getTab());
    jtp.addTab("Samenvatting schooljaar", secondTab.getTab());

    frame.getContentPane().add(jtp);
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.setSize(640, 480);
    frame.setLocationByPlatform(true);
    frame.setVisible(true);

    modules = new HashSet<Module>();
    weeks = new HashSet<Week>();

}        

public static void main(String[] args) {

    new EindopdrachtJava3();
}

Эта вкладка содержит несколько панелей и добавляется в мой JFrame в классе Main

JFrame {    
   JTabbedPane {
      Tab 1 { 
         Panel 1
         ScrollPane(JTabel)   - But not possible(?)
      }
      Tab 2 { 
         ....
      }
} 

Я хотел бы сохранить его модульным, насколько это возможно, так как это в настоящее время моя кривая обучения в GUI

0 ответов

Другие вопросы по тегам