java swing网格布局问题 我定义了一个6行10列的网格 想在里面添加60个按钮 代码如下

javaswing网格布局问题我定义了一个6行10列的网格想在里面添加60个按钮代码如下可是不显示按钮... java swing网格布局问题 我定义了一个6行10列的网格 想在里面添加60个按钮 代码如下 可是不显示按钮 展开
 我来答
紫薇参星
科技发烧友

2016-09-08 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3608万
展开全部

你往panel里面加button的函数没有被调用,也就是init函数没有被执行,

你在main函数中new jdttest();只会调用jdttest类的构造函数public jdttest()

不会调用public void init()函数,所以button数组没有加到panel中,自然就没显示.

解决办法 你在构造函数public jdttest()中panel.setLayout(new GridLayout(6,10));后面

调用一下public void init()函数,就行了.

完整的Java程序如下(改动的地方见注释)

import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class jdttest extends JFrame{
 JButton button[][]=new JButton[6][10];
 JPanel panel=new JPanel();
 public jdttest(){
  this.setSize(900,630);
  this.setLayout(new BorderLayout());
  panel.setLayout(new GridLayout(6,10));
  panel.setBounds(150, 50, 600,360);
  init();  //这里加一句调用init()函数
  this.add(panel,BorderLayout.CENTER);
  this.setVisible(true);
 }
 public void init(){
  for(int cols=0;cols<6;cols++){
   for(int rows=0;rows<10;rows++){
    button[cols][rows]=new JButton("7");
    panel.add(button[cols][rows]);
   }
  }
 }
 public static void main(String[] args) {
  new jdttest();
 }
}
更多追问追答
追问
谢谢!那假如要添加的是图片按钮怎么办呢?
for (int rows = 0; rows < 10; rows++) {
button[cols][rows] = dl11;
}
为何破军
2016-09-08 · TA获得超过111个赞
知道小有建树答主
回答量:64
采纳率:0%
帮助的人:59.9万
展开全部
this.setVisible(true)放最后!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式