由于java.lang.IllegalArgumentException,程序无法正常工作

时间:2015-10-10 17:31:03

标签: java exception arguments jlabel

下面的程序不想工作,我不知道为什么。

import javax.swing.*;
import java.awt.*;

    public class Lab2Part4 extends JFrame {
        public Lab2Part4() {

        setTitle("My Pics");
        setSize(500, 500);
        setVisible(true);

        Icon carIcon = new ImageIcon("db10.jpg");

        JLabel carLabel = new JLabel("new Aston");
        carLabel.setIcon(carIcon);
        carLabel.setHorizontalAlignment(JLabel.RIGHT);

        JTextArea carTa = new JTextArea();
        carTa.setText("this is the new JB car");

        Container contentPane = getContentPane();
        JPanel labelPanel = new JPanel();
        JPanel textPanel = new JPanel();

        labelPanel.add(carLabel);
        textPanel.add(carTa);

        contentPane.add(labelPanel, textPanel);
    }

    public static void main(String[] args){
        Lab2Part4 myFrame = new Lab2Part4();
    }
}

现在它编译并且框架出现在屏幕上,但没有图像或标签,命令提示符中的错误如下:

Exception in thread "main" java.lang.IllegalArgumentException: cannot add to layout: constraint must be a string (or null)
    at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:426)
    at javax.swing.JRootPane$1.addLayoutComponent(JRootPane.java:532)
    at java.awt.Container.addImpl(Container.java:1127)
    at java.awt.Container.add(Container.java:973)
    at Lab2Part4.<init>(Lab2Part4.java:27)
    at Lab2Part4.main(Lab2Part4.java:30)

1 个答案:

答案 0 :(得分:1)

contentPane.add(labelPanel, textPanel);

请将您的代码更改为

contentPane.add(labelPanel);
contentPane.add( textPanel);

有关详细信息,请参阅https://www.cis.upenn.edu/~bcpierce/courses/629/jdkdocs/api/java.awt.Container.html