下面的程序不想工作,我不知道为什么。
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)
答案 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