Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JTabbedpanes的多面板选项卡中的java滚动窗格

大家好

我有一个JTabbedPane,每个选项卡都有自己的类。每个ActionListener都有自己的独立类。 执行的一个操作是在设置了一定天数后添加一个带有列的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在设置天数后添加到面板中

GUI

正如您所注意到的,这些列是不可见的(但它们已设置),所以我被告知使用滚动窗格

但是,我无法通过JTabed中的滚动窗格,因为普通窗格(“主窗格”-容器)通过:

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();
}

此选项卡包含多个面板,并被添加到主类中的my JFrame中

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

我希望尽可能保持模块化,因为这是我目前在GUI中的学习曲线


共 (0) 个答案