谁知道这个是为什么。。。。。。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class MyLabel extends JLabel
{
MyLabel()
{
setSize(20,100);
}
public void paint(Graphics g)
{
g.drawString( "写 ",2,14);
g.drawString( "个 ",2,34);
g.drawString( "竖 ",2,54);
g.drawString( "标 ",2,74);
g.drawString( "签 ",2,94);
}
}
public class labeltest extends JFrame
{
MyLabel mylabel;
JPanel p1=new JPanel();
Container con;
labeltest()
{
super( "标签测试程序 ");
setSize(400,300);
setVisible(true);
con=getContentPane();
mylabel=new MyLabel();
p1.add(mylabel);
con.add(p1,BorderLayout.CENTER);
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0);}});
}
public static void main(String[] args)
{
labeltest fr=new labeltest();
fr.validate();
}
}
这个为什么不显示
把mylabel 放到con 就能显示了。
还有我想写个竖的标签 还有别的办法不?
[解决办法]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class MyLabel extends JLabel
{
MyLabel()
{
setSize(20,100);
}
public void paint(Graphics g)
{
g.drawString( "写 ",2,14);
g.drawString( "个 ",2,34);
g.drawString( "竖 ",2,54);
g.drawString( "标 ",2,74);
g.drawString( "签 ",2,94);
}
}
public class Labeltest extends JFrame
{
MyLabel mylabel;
//JPanel p1=new JPanel(new BorderLayout());
JPanel p1=new JPanel();
Container con;
Labeltest()
{
super( "标签测试程序 ");
setSize(400,300);
setVisible(true);
con=getContentPane();
mylabel=new MyLabel();
p1.setLayout(null);//设置空布局
p1.add(mylabel ,null);
con.add(p1,BorderLayout.CENTER);
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0);}});
}
public static void main(String[] args)
{
Labeltest fr=new Labeltest();
fr.validate();
}
}
布局的设置问题吧
[解决办法]
panel 是需要Container的,需要在panel终增加一个Container,之后的东西直接加到Container中。
