代码附上public class T2 extends JFrame {
    JTextField tField,t2,t3;    public T2() {
        super("T");
        tField = new JTextField(10);
        t2 = new JTextField(10);
        setSize(760, 670);
        setLayout(new GridLayout(3,1));
        JPanel t = new JPanel();
        t.setLayout(new GridLayout(1,1));
        t.add(tField);
        add(t);
        add(t2);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
    }    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable(){
                public void run(){
                    new T2();
                }
            });
    }
}

解决方案 »

  1.   

    上面的发错的...重发一下.
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;public class TableTest1 extends JPanel {
        JTable table;
        Object a[][];
        Object name[] = {"商品名称", "单价", "售价", "销售额"};    TableTest1() {
           a = new Object[4][4];
            for (int i = 0; i < 4; i++)
                for (int j = 0; j < 4; j++)
                    a[i][j] = "0";        table = new JTable(a, name);
            table.setRowHeight(20);
            add(new JScrollPane(table), BorderLayout.CENTER);
            setVisible(true);
            add(new JButton("this"), BorderLayout.SOUTH);
            validate();
        }    public static void main(String[] args) {
            JFrame f = new JFrame();
            f.add(new TableTest1());
            f.setVisible(true);
            f.setSize(800, 600);
            f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            
        }
    }
      

  2.   

    JPanel的默认布局是FlowLayout,你得设置 setLayout(new BorderLayout());
      

  3.   

    import java.awt.*;
    import java.awt.event.*;
    import java.beans.*;
    import javax.swing.*;public class Test {
    public static void main(final String[] args) {
    SwingUtilities.invokeLater(new Runnable(){
    public void run(){
    JFrame frame = new JFrame("Test");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel contentPane = (JPanel) (frame.getContentPane());
    final JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true, new JScrollPane(new JTree()),new JScrollPane(new JTree()));
    contentPane.add(splitPane);
    /*
    SwingUtilities.invokeLater(new Runnable(){
    public void run(){
    splitPane.setDividerLocation(0.33);
    }
    });
    */
    splitPane.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY,new PropertyChangeListener(){
    public void propertyChange(PropertyChangeEvent e){
    splitPane.setDividerLocation(0.33);
    }
    });

    frame.addWindowListener(new WindowAdapter(){
    public void windowOpened(WindowEvent e) {
    splitPane.setDividerLocation(0.33);
    }
    }); frame.addComponentListener(new ComponentAdapter(){
    public void componentResized(ComponentEvent e) {
    splitPane.setDividerLocation(0.33);
    }
    });

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

  4.   

    感谢 huntor,帮了好多忙
    我现在的情况是
    public class InitWin extends JFrame {
        InitWin() {
            pane.add(new Maintenance());
        }
    }
    splitPane是放在Maintenance这个类中的.
    addWindowListener和addComponentListener要怎么样访问splitPane来设置呢?
      

  5.   

    Maintenance类应该可以用 addComponentListener。和上面注释掉的那几行。
    AWT组件和Swing基本上都是从Component继承来的,都可以激发 ComponentEvent