警告:手头的初学者非常无知!
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TabbedGUI extends JFrame {
private static final long serialVersionUID = 1L;
public TabbedGUI() {
JPanel p1 = new JPanel();
JTabbedPane tab;
tab= new JTabbedPane();
TopPanel tp;
tp=new TopPanel();
Dimension d = new Dimension(800,600);
tp.setPreferredSize(d);
tp.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(800,600);
setBackground(Color.PINK);
//MiddlePanel
MiddlePanel mp;
mp=new MiddlePanel();
this.add (mp, BorderLayout.CENTER);
mp.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(800,600);
//BottomPanel
BottomPanel bp;
bp=new BottomPanel();
this.add (bp, BorderLayout.SOUTH);
bp.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(800,600);
tab.add(tp);
tab.add(bp);
tab.add(mp);
this.add(tab);
p1.add(tp, BorderLayout.NORTH);
p1.add(bp, BorderLayout.SOUTH);
p1.add(mp, BorderLayout.CENTER);
tab.setPreferredSize(d);
tab.setVisible(true);
this.setVisible(true);
TopPanelC tp1;
tp1=new TopPanelC();
BottomPanelC bp1;
bp1=new BottomPanelC();
MiddlePanelC mp1;
mp1=new MiddlePanelC();
JPanel p2 = new JPanel();
JTabbedPane tab1;
tab1= new JTabbedPane();
tab1.add(tp1);
tab1.add(bp1);
tab1.add(mp1);
this.add(tab1);
this.setVisible(true);
p2.add(tp1, BorderLayout.NORTH);
p2.add(bp1, BorderLayout.SOUTH);
p2.add(mp1, BorderLayout.CENTER);
tab1.setPreferredSize(d);
tab1.setVisible(true);
}
public static void main(String[] args){
new TabbedGUI();
}
}
创建一个名为“TabbedGUI.java”的新GUI。将TabbedPane添加到JFrame。 TabbedPane应该有2个选项卡。第一个标签应与上面的#1相同,即学生数据的表格。第二个标签应该看起来非常相似,但会用于显示和更改课程数据。课程应该有4个textFields,“课程ID”,“课程名称”,“描述”和“学分时间”。
答案 0 :(得分:2)
JFrame
(或任何其他基于窗口的容器)无法添加到其他任何内容中,您需要更改UI以使组件从JPanel
不要在可能的情况下直接从顶级容器扩展(applet是不同的野兽)。相反,围绕像JPanel
这样的简单容器构建UI。这使您可以像现在一样决定如何以及何时使用组件,而不是锁定在单个顶级容器中。
整个过程很简单。 JTabbedPane
是一个容器,您可以在其上添加其他组件。然后将其添加到JFrame
的实例(或您想要使用的容器),例如......
请查看How to Use Tabbed Panes了解详情
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class TabbedExample {
public static void main(String[] args) {
new TabbedExample();
}
public TabbedExample() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.add("Student", new StudentGUI());
tabbedPane.add("Courses", new CourseGUI());
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(tabbedPane);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class StudentGUI extends JPanel {
public StudentGUI() {
setLayout(new BorderLayout());
JPanel top = new JPanel(new BorderLayout());
top.setBackground(Color.BLUE);
top.add(new JLabel("Top"));
JPanel middle = new JPanel(new BorderLayout());
middle.setBackground(Color.GREEN);
middle.add(new JLabel("Middle"));
JPanel bottom = new JPanel(new BorderLayout());
bottom.setBackground(Color.CYAN);
bottom.add(new JLabel("Bottom"));
add(top, BorderLayout.NORTH);
add(middle);
add(bottom, BorderLayout.SOUTH);
}
}
public class CourseGUI extends JPanel {
public CourseGUI() {
setLayout(new BorderLayout());
JPanel top = new JPanel(new BorderLayout());
top.setBackground(Color.RED);
top.add(new JLabel("Top"));
JPanel middle = new JPanel(new BorderLayout());
middle.setBackground(Color.ORANGE);
middle.add(new JLabel("Middle"));
JPanel bottom = new JPanel(new BorderLayout());
bottom.setBackground(Color.MAGENTA);
bottom.add(new JLabel("Bottom"));
add(top, BorderLayout.NORTH);
add(middle);
add(bottom, BorderLayout.SOUTH);
}
}
}