java - TableLayout 窗口中的最后一列未出现

标签 java

我想制作一款类似 Jeopardy 的游戏,为了实现这一目标,我决定使用 TableLayout 布局。这就是我的代码现在的样子:

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

import layout.TableLayout;

public class JeopardyOrtho {
    static JFrame j = new JFrame();
    static JButton [][] buttons = new JButton [5][5];

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int score = 0;
        for (int r=0; r<5; r++)
        {
            score = score+10;
            for (int c=0; c<5; c++)
            {
                buttons [c][r] = new JButton (""+score);
            }
        }
        j.setResizable(false);
        j.setBounds(100, 100, 800, 600);
        j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         double size[][] = {{0.20, 0.20, 0.20, 0.20, 0,20}, // Columns
                    {0.10, 0.16, 0.16, 0.16, 0.16, 0.16, 0.10}}; // Rows
        j.getContentPane().setLayout(new TableLayout(size));
        for (int r=0; r<5; r++)
        {
            for (int c=0; c<5; c++)
            {
                j.add(buttons [c][r], "" + c + ", " + (r+1));
            }
        }
        JLabel label1 = new JLabel ("Classrooms");
        j.add(label1,"0, 0");
        JLabel label2 = new JLabel ("This thing");
        j.add(label2,"0, 1");
        JLabel label3 = new JLabel ("That thing");
        j.add(label3,"0, 2");
        JLabel label4 = new JLabel ("Other thing");
        j.add(label4,"0, 3");
        JLabel label5 = new JLabel ("Yeah");
        j.add(label5,"0, 4");
        j.setVisible(true);
    }


}

据我所知,运行此代码应该创建一个 5 列 7 行的表,第一行具有每个类别标题的占位符名称,最后一行完全空白,中间部分填充与 5x5 网格 ala Jeopardy。然而,当它实际运行时,它看起来像这样:

enter image description here

它看起来应该是这样,除了最后一列的全部内容没有显示之外。有谁知道为什么会发生这种情况?我假设,由于当我尝试在这些空单元格中手动放置某些内容时程序不会抛出错误,因此这些单元格确实存在,只是由于某种原因不会被填充。

最佳答案

您在最后一栏中有一个拼写错误。

double size[][] = {{0.20, 0.20, 0.20, 0.20, 0,20}, // Columns
                {0.10, 0.16, 0.16, 0.16, 0.16, 0.16, 0.10}}; // Rows

应该是

double size[][] = {{0.20, 0.20, 0.20, 0.20, 0.20}, // Columns
                {0.10, 0.16, 0.16, 0.16, 0.16, 0.16, 0.10}}; // Rows

此外,在您粘贴的摘录中,标签的位置也不佳。 它们应该添加到第 0 行

    JLabel label1 = new JLabel ("Classrooms");
    j.add(label1,"0, 0");
    JLabel label2 = new JLabel ("This thing");
    j.add(label2,"1, 0");
    JLabel label3 = new JLabel ("That thing");
    j.add(label3,"2, 0");
    JLabel label4 = new JLabel ("Other thing");
    j.add(label4,"3, 0");
    JLabel label5 = new JLabel ("Yeah");
    j.add(label5,"4, 0");

关于java - TableLayout 窗口中的最后一列未出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36171971/

相关文章:

java - 如何从 JSP 中的文件类型获取完整路径?

java - 如何修复 Eclipse 中的 Maven、Maven 配置和 Maven 依赖性问题

java - 二维数组 : Retrieving Row/Column and not value

java - 适用于 Windows 7 的任何开源 Java 反编译器

java - 如何防止绘制的形状在 Java 中消失?

java - 指向其他类中ArrayList的指针

java - 房间数据库编译错误: Field has non-unique column name

java - 如何动态获取Hibernate对象关系?

java - 在运行时将资源放在类路径上

java - 平均 Java 中 For 循环迭代的时间