代码如下:
import java.awt.*;
import java.awt.event.*;import javax.swing.*;public class GridBagDemo extends JFrame{
private Container container;
private GridBagLayout layout;
private GridBagConstraints constraints;

public GridBagDemo(){
super("GridBag Demo");

Container container = getContentPane();
layout = new GridBagLayout();
container.setLayout(layout);

constraints = new GridBagConstraints();

JTextField textField = new JTextField("TextField");

JButton zero = new JButton("zero");
JButton one = new JButton("one");
JButton two = new JButton("two");

String metal[] = {"Copper", "Aluminum", "Silver"};
JComboBox comboBox = new JComboBox(metal);

JButton three = new JButton("three");

JButton four = new JButton("four");

String fonts[] = {"Serif", "Monospaced"};
JList list = new JList(fonts);

constraints.fill = GridBagConstraints.BOTH;
addComponent(textField, 0, 0, 3, 1);            //此处出错

constraints.fill = GridBagConstraints.BOTH;
addComponent(zero, 1, 0, 1, 1);

constraints.weightx = 1000;
constraints.weighty = 1;
constraints.fill = GridBagConstraints.BOTH;
addComponent(one, 1, 1, 1, 1);

constraints.weightx = 0;
constraints.weighty = 0;
constraints.fill = GridBagConstraints.BOTH;
addComponent(two, 1, 2, 1, 1);

constraints.fill = GridBagConstraints.BOTH;
addComponent(comboBox, 2, 0, 3, 1);

constraints.fill = GridBagConstraints.BOTH;
addComponent(three, 3, 0, 3, 1);

constraints.fill = GridBagConstraints.BOTH;
addComponent(four, 4, 0, 2, 1);

constraints.fill = GridBagConstraints.BOTH;
addComponent(list, 4, 2, 1, 1);

setSize(300, 150);
setVisible(true);
}

private void addComponent(Component component, int row, int column, int width, int height) {

constraints.gridx = column;
constraints.gridy = row;

constraints.gridwidth = width;
constraints.gridheight = height;

layout.setConstraints(component, constraints);
container.add(component);                   //此处出错
} public static void main(String[] args) {

GridBagDemo application = new GridBagDemo();               //此处出错

application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}}求高手指点!

解决方案 »

  1.   


    import java.awt.*; 
    import java.awt.event.*; import javax.swing.*; public class GridBagDemo extends JFrame{ 
    private Container container; 
    private GridBagLayout layout; 
    private GridBagConstraints constraints; public GridBagDemo(){ 
    super("GridBag Demo"); container = getContentPane(); 
    layout = new GridBagLayout(); 
    container.setLayout(layout); constraints = new GridBagConstraints(); JTextField textField = new JTextField("TextField"); JButton zero = new JButton("zero"); 
    JButton one = new JButton("one"); 
    JButton two = new JButton("two"); String metal[] = {"Copper", "Aluminum", "Silver"}; 
    JComboBox comboBox = new JComboBox(metal); JButton three = new JButton("three"); JButton four = new JButton("four"); String fonts[] = {"Serif", "Monospaced"}; 
    JList list = new JList(fonts); constraints.fill = GridBagConstraints.BOTH; 
    addComponent(textField, 0, 0, 3, 1);            constraints.fill = GridBagConstraints.BOTH; 
    addComponent(zero, 1, 0, 1, 1); constraints.weightx = 1000; 
    constraints.weighty = 1; 
    constraints.fill = GridBagConstraints.BOTH; 
    addComponent(one, 1, 1, 1, 1); constraints.weightx = 0; 
    constraints.weighty = 0; 
    constraints.fill = GridBagConstraints.BOTH; 
    addComponent(two, 1, 2, 1, 1); constraints.fill = GridBagConstraints.BOTH; 
    addComponent(comboBox, 2, 0, 3, 1); constraints.fill = GridBagConstraints.BOTH; 
    addComponent(three, 3, 0, 3, 1); constraints.fill = GridBagConstraints.BOTH; 
    addComponent(four, 4, 0, 2, 1); constraints.fill = GridBagConstraints.BOTH; 
    addComponent(list, 4, 2, 1, 1); setSize(300, 150); 
    setVisible(true); 
    } private void addComponent(Component component, int row, int column, int width, int height) { constraints.gridx = column; 
    constraints.gridy = row; constraints.gridwidth = width; 
    constraints.gridheight = height; layout.setConstraints(component, constraints); 
    container.add(component);                  
    } public static void main(String[] args) { GridBagDemo application = new GridBagDemo();              application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } } 
    Container container = getContentPane(); 
    這句改成 container = getContentPane();