作者qrtt1 (隐者)
看板java
标题Re: [问题] JLabel
时间Tue May 23 19:16:22 2006
※ 引述《tinkywinky ()》之铭言:
: 我有个class ppp extends JFrame
: 然後我想要在上面加一个JLabel b 显示字
: 可是在main里我写
: ppp application= new ppp();
: JLabel b=new JLabel("hey");
: application.add(b,BorderLayout.SOUTH);
: ...
: 却不会显示hey
: 连灰灰的label都看不到
: 请问该怎麽办?
: 谢谢
因为要加在Container中啊
让Layout (预设的)帮你管理。
不然,你想看到他那只好自己setSize和location了
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class SwingApp extends JFrame {
private Container container;
public SwingApp(String title){
super(title);
container = super.getContentPane();
super.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public static void main(String[] args){
SwingApp sapp = new SwingApp("Test");
JLabel b=new JLabel("hey");
sapp.container.add(b, BorderLayout.SOUTH);
sapp.setVisible(true);
sapp.pack();
}
}
==========================================================================
若是不用Container
我在linux下测他会喷error
(windows下我确定能加,以前try过)
Exception in thread "main" java.lang.Error: Do not use SwingApp.add() use
SwingApp.getContentPane().add() instead
at javax.swing.JFrame.createRootPaneException(JFrame.java:465)
at javax.swing.JFrame.addImpl(JFrame.java:491)
at java.awt.Container.add(Container.java:307)
at SwingApp.main(SwingApp.java:19)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.26.34.105
※ 编辑: qrtt1 来自: 163.26.34.105 (05/23 19:16)