当前位置: 代码迷 >> Java相关 >> 为什么label不会变色呢
  详细解决方案

为什么label不会变色呢

热度:263   发布时间:2006-03-31 12:38:00.0
为什么label不会变色呢
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Work4 extends JFrame implements ActionListener{
private JButton btn1,btn2,btn3;
private JLabel lbl;
private Container cp;
private GridLayout layout;
public Work4(){
super("bianselong");
setSize(200,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn1=new JButton("红色");
btn2=new JButton("黄色");
btn3=new JButton("兰色");
lbl=new JLabel("the color will be changed");
cp=getContentPane();
layout=new GridLayout(3,1,6,6);
cp.setLayout(layout);
cp.add(btn1);
cp.add(btn2);
cp.add(btn3);
cp.add(lbl);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);

}
public void actionPerformed(ActionEvent e){
if(e.getSource()==btn1)
{
lbl.setBackground(Color.red);
lbl.setText("红色");}
else if(e.getSource()==btn2)
{lbl.setText("黄色");
lbl.setBackground(Color.yellow);}
else {lbl.setText("兰色");
lbl.setBackground(Color.blue);}
}
public static void main(String[] args){
Work4 work =new Work4();
work.setVisible(true);
}
} 而且输出也不事按照Grid 布局输出得 如果把这个程序改成 Frame 得而步是 JFrame 得就可以变色

[此贴子已经被作者于2006-3-31 14:27:33编辑过]

搜索更多相关的解决方案: label  变色  

----------------解决方案--------------------------------------------------------

work 好像还有个 pack() 方法, 记不清了。。
你自己找一下。


----------------解决方案--------------------------------------------------------
哪个不是紧凑布局吗
----------------解决方案--------------------------------------------------------
哦 忘了。
还有一个 是 显示背景色。。。

----------------解决方案--------------------------------------------------------
setOpaque(true);
是这个。

----------------解决方案--------------------------------------------------------
能说清楚点吗 我把JFrame 得容器改成了 Frame  就可以看了
----------------解决方案--------------------------------------------------------
不行啊 没有这个方法啊
----------------解决方案--------------------------------------------------------

setOpaque

public void setOpaque(boolean isOpaque)
如果为 true,则该组件绘制其边界内的所有像素。否则该组件可能不绘制其某些或所有像素,从而允许其下面的像素透视出来。

对于 JComponent 而言,此属性的默认值是 false。但是对于大多数标准的 JComponent 子类(如 JButtonJTree),此属性的默认值是和外观相关的。

参数:
isOpaque - 如果此组件应该是透明的,则为 true
另请参见:
isOpaque()


lbl.setOpaque(true);

----------------解决方案--------------------------------------------------------
谢谢了 成了
----------------解决方案--------------------------------------------------------
  相关解决方案