java swing问题,添加的JButton不显示

下面是部分的程序:publicclassMywork1extendsJFrame{/***@paramargs*///重写piantImageimage1=null;pu... 下面是部分的程序:
public class Mywork1 extends JFrame{
/**
* @param args
*/
//重写 piant
Image image1=null;
public void paint (Graphics g){
super.paint(g);
g.drawImage(image1,10,50,600,500,this);

}
public EnjoyMusic(){
//设置窗体属性
setSize(600,590);
setLocation(330,100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(null);
//this.setResizable(false);

//建立切换按钮 ,可是运行之后显示不出来,会不会和paint()有关??
JButton button1=new JButton("切换");
//button1.setSize(50,100);
this.add(button1);
button1.setLocation(250, 500);
// 建立菜单栏
JMenuBar menubar = new JMenuBar();
this.setJMenuBar(menubar);//为窗体设置menubar
展开
 我来答
lecroy03
2012-11-08 · TA获得超过313个赞
知道小有建树答主
回答量:240
采纳率:100%
帮助的人:145万
展开全部
this.setLayout(null);问题出在这行代码上,往容器里面添加组件时,必有有布局,不然系统会不知道怎么添加。
未做设置时,系统默认布局为BorderLayout,显示指定为null后,容器就没有布局了,此时往容器上添加组件都不会显示。
更多追问追答
追问
那要怎么办?难道要对button 来个setvisible?怎么我看书上的都不用啊都会显示的 。会不会和加的那个菜单栏有关?
追答
public class Test extends JFrame{
private ImageIcon icon = new ImageIcon(getClass().getResource("image.png"));

@Override
public void paint(Graphics g) {
super.paint(g);
g.drawImage(icon.getImage(), 100, 100, this);
}

public void Fun() {
setSize(500, 400);
setLayout(new FlowLayout());
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("button");
add(button);
setVisible(true);
}

public static void main(String[] args){
new Test().Fun();
}

}
把你的图片替换上,你看看吧
百度网友12ee0fd
2012-11-10 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:1950万
展开全部
继承JPanel,重写paintComponent绘制图片。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duzc2
2012-11-08 · TA获得超过2512个赞
知道大有可为答主
回答量:1987
采纳率:50%
帮助的人:2072万
展开全部
drawImage 的时候把按钮覆盖了吧

g.drawImage(image1,10,50,600,500,this);
super.paint(g);

试试
更多追问追答
追问
没用诶。 你这只是调换了个顺序啊,你这样改是绝对错的,连图片都paint不出来了。
追答
o .  忘了,
你去掉那个drawImage 试试
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fongyue0731
2012-11-08 · 超过24用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:71.8万
展开全部
日啊。。。
不要直接在客体里画图啊。。。
搞个容器,画在容器里。。。
追问
这么说,和这个有关?但是你看看我的写的坐标什么的,根本就不会把那个给覆盖。窗口最大化了也没有button的影子。而且感觉 g.drawImage(image1,10,50,600,500,this);的绘制很奇怪 好像会自己调整尺寸 而不是完全按照你写的坐标来画
追答
调试下,看看事件先后顺序。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式