JTabbedPane tabbedPane = new JTabbedPane();

    JPanel panel1 = new JPanel();     JTextArea area1 = new JTextArea(50, 50); 
    
    area1.setEditable(false);
    
    panel1.add(area1, BorderLayout.CENTER);
    
    tabbedPane.addTab("Tab one", null, panel1, "First Panel");
该代码就是实现了将一个area1添加到panel1,再将panel1添加到tabbedPane中,请问能不能让area1的大小随着窗口的大小能自动的变大或缩小。
这个不会,请大家帮忙看看,谢谢!

解决方案 »

  1.   

    既然你的area1在panel1里面,而panel1在tabbedPane的一个Tab里面,如果你设置好了Layout,那么area1的大小会随tabbedPane的大小而变化
      

  2.   

    用FlowLayout:
    把panel1.add(area1, BorderLayout.CENTER);改成panel1.add(area1);
      

  3.   

    不行哦 FlowLayout   也不行
      

  4.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Screen extends JFrame{
    private static final long serialVersionUID = 41L;

    public Screen(){
    super("DataBase System");

    JMenu fileMenu = new JMenu("系统");
    fileMenu.setMnemonic('S');

    JMenuItem startServer  = new JMenuItem("启动服务器");
    startServer.setMnemonic('T');
    fileMenu.add(startServer);
    startServer.addActionListener(
    new ActionListener(){
    public void actionPerformed(ActionEvent event){
    //启动服务器方法;
    }
    }
    );

    JMenuItem connectServer = new JMenuItem("连接服务器");
    connectServer.setMnemonic('C');
    fileMenu.add(connectServer);
    connectServer.addActionListener(
    new ActionListener(){
    public void actionPerformed(ActionEvent event){
                JOptionPane.showInputDialog("服务器名或者服务器IP:");
    }
    }
    );

    JMenuItem excute = new JMenuItem("执行SQL语句");
    excute.setMnemonic('E');
    fileMenu.add(excute);
    excute.addActionListener(
    new ActionListener(){
    public void actionPerformed(ActionEvent event){
        //运行方法;
    }
    }
    );

    JMenuItem exit = new JMenuItem("退出");
    exit.setMnemonic('X');
    fileMenu.add(exit);
    exit.addActionListener(
    new ActionListener(){
    public void actionPerformed(ActionEvent event){
        System.exit(0);
    }
    }
    );

    JMenuBar bar = new JMenuBar();
    setJMenuBar(bar);
    bar.add(fileMenu);

    JMenu aboutMenu = new JMenu("关于");
    aboutMenu.setMnemonic('A');

    JMenuItem group = new JMenuItem("小组成员");
    group.setMnemonic('G');
    group.addActionListener(
    new ActionListener(){
    public void actionPerformed(ActionEvent event){
    String groupName =   "333    " + "   33\n" 
                       + "333    " + "   33\n"
                       + "333    " + "   33\n";
    JTextArea textArea = new JTextArea();
    textArea.setEditable(false);
    textArea.setText(groupName);

    JOptionPane.showMessageDialog(null, textArea, "小组成员", JOptionPane.INFORMATION_MESSAGE);
    }
    }
    );

    aboutMenu.add(group);
    bar.add(aboutMenu);

    JTextArea outputArea = new JTextArea(); 

    JTabbedPane tabbedPane = new JTabbedPane();

        JPanel panel1 = new JPanel();
        JPanel panel2 = new JPanel();
        JPanel panel3 = new JPanel();
        JTextArea area1 = new JTextArea(100, 65); 
        JTextArea area2 = new JTextArea(100, 65); 
        JTextArea area3 = new JTextArea(100, 65); 
             
        area1.setEditable(false);
        
        panel1.add(area1);
        panel2.add(area2);
        panel3.add(area3);
        
        tabbedPane.addTab("Tab one", null, panel1, "First Panel");
        tabbedPane.addTab("Tab two", null, panel2, "Second Panel");
        tabbedPane.addTab("Tab three", null, panel3, "Thirs Panel");

    Container container = getContentPane();
    container.setLayout(new GridLayout(2, 1));

    container.add(outputArea);
    container.add(tabbedPane);

    setSize(800,600);
            setVisible(true);
    }

    public static void main(String args[]){
    Screen application = new Screen();
    application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }就是这个里面的TabbedPane的问题  
      

  5.   

    把那几个panel都设成BorderLayoutpanel1.setLayout(new BorderLayout());
    panel2.setLayout(new BorderLayout());
    panel3.setLayout(new BorderLayout());是不是你要的效果
      

  6.   

    楼上的方法我试了  那样的话连JTextArea的对象都看不见了~~
    很无奈啊~~
      

  7.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Screen extends JFrame {
    private static final long serialVersionUID = 41L; public Screen() {
    super("DataBase System"); JMenu fileMenu = new JMenu("系统");
    fileMenu.setMnemonic('S'); JMenuItem startServer = new JMenuItem("启动服务器");
    startServer.setMnemonic('T');
    fileMenu.add(startServer);
    startServer.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
    // 启动服务器方法;
    }
    }); JMenuItem connectServer = new JMenuItem("连接服务器");
    connectServer.setMnemonic('C');
    fileMenu.add(connectServer);
    connectServer.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
    JOptionPane.showInputDialog("服务器名或者服务器IP:");
    }
    }); JMenuItem excute = new JMenuItem("执行SQL语句");
    excute.setMnemonic('E');
    fileMenu.add(excute);
    excute.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
    // 运行方法;
    }
    }); JMenuItem exit = new JMenuItem("退出");
    exit.setMnemonic('X');
    fileMenu.add(exit);
    exit.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
    System.exit(0);
    }
    }); JMenuBar bar = new JMenuBar();
    setJMenuBar(bar);
    bar.add(fileMenu); JMenu aboutMenu = new JMenu("关于");
    aboutMenu.setMnemonic('A'); JMenuItem group = new JMenuItem("小组成员");
    group.setMnemonic('G');
    group.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
    String groupName = "333    " + "   33\n" + "333    "
    + "   33\n" + "333    " + "   33\n";
    JTextArea textArea = new JTextArea();
    textArea.setEditable(false);
    textArea.setText(groupName); JOptionPane.showMessageDialog(null, textArea, "小组成员",
    JOptionPane.INFORMATION_MESSAGE);
    }
    }); aboutMenu.add(group);
    bar.add(aboutMenu); JTextArea outputArea = new JTextArea(); JTabbedPane tabbedPane = new JTabbedPane(); JPanel panel1 = new JPanel();
    JPanel panel2 = new JPanel();
    JPanel panel3 = new JPanel();
    JTextArea area1 = new JTextArea(100, 65);
    JTextArea area2 = new JTextArea(100, 65);
    JTextArea area3 = new JTextArea(100, 65); area1.setEditable(false);
    BorderLayout borderLayout1 = new BorderLayout();
    BorderLayout borderLayout2 = new BorderLayout();
    BorderLayout borderLayout3 = new BorderLayout();
    panel1.setLayout(borderLayout1);
    panel2.setLayout(borderLayout2);
    panel3.setLayout(borderLayout3);
    panel1.add(area1);
    panel2.add(area2);
    panel3.add(area3); tabbedPane.addTab("Tab one", null, panel1, "First Panel");
    tabbedPane.addTab("Tab two", null, panel2, "Second Panel");
    tabbedPane.addTab("Tab three", null, panel3, "Thirs Panel"); Container container = getContentPane();
    container.setLayout(new GridLayout(2, 1));
    container.add(outputArea);
    container.add(tabbedPane); setSize(800, 600);
    setVisible(true);
    } public static void main(String args[]) {
    Screen application = new Screen();
    application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }
    主要是这里:
    BorderLayout borderLayout1 = new BorderLayout();
    BorderLayout borderLayout2 = new BorderLayout();
    BorderLayout borderLayout3 = new BorderLayout();
    panel1.setLayout(borderLayout1);
    panel2.setLayout(borderLayout2);
    panel3.setLayout(borderLayout3);
      

  8.   

    怎么会连JTextArea的对象都看不见,panel1.setLayout(new BorderLayout());
    panel2.setLayout(new BorderLayout());
    panel3.setLayout(new BorderLayout());
    panel1.add(area1);
    panel2.add(area2);
    panel3.add(area3);那3个JTextArea都布满了整个JTabbedPane