这个Java程序的按钮只有在鼠标划过后才显示,而Label根本不显示

刚开始编写,发现按钮只有鼠标划过之后才会显示按钮,而Label就是不现实,求助解决方法。

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class about extends JFrame{

Image img;

static JButton bt1=new JButton("确定");
JLabel la1=new JLabel("Java播放器");
public static void main(String args[])
{
about ab=new about();
}
about()
{
super("关于");
setSize(600,300);
setBackground(Color.green);
setResizable(false);
setVisible(true);
setLayout(null);
add(bt1);
bt1.setBounds(455, 240, 85, 23);
bt1.setFocusPainted(false);
add(la1);
la1.setBounds(150, 30, 75, 23);
la1.setFont(new Font("行楷",Font.BOLD,15));
Toolkit tk=getToolkit();
img=tk.getImage("image//view.gif");

addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){System.exit(0);}});
}

public void paint (Graphics g)
{
int wt=img.getWidth(this);
int ht=img.getHeight(this);
g.drawImage(img, 3, 20, wt, ht, this);
}
}
将JFrame改成Frame,将JButton改成Button就没有这个问题

你好,我试过你的代码,当图片可以被draw出来时,确实影响了本来组件的显示

如果你是为了想让容器有背景图片的话,你这种方法不可取,可以使用分层+Label设置icon的方式

看下我才整理的这篇日志《JFrame 背景图片》
http://hi.baidu.com/lylegend13/blog/item/9713c5885cffbe89a5c27257.html
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-20
把 setVisible(true) 放到 about 方法的最后一句。
第2个回答  2011-11-19
label没获取到值啊,自己多测试下,自己找出来的错误记忆回比较深刻的,
相似回答