繁体   English   中英

表头未显示在表中

[英]Table header isn't shown in the table

我想做一个记分板。 我正在使用表格来显示数据。 数据会显示,但表头不会显示。 我已经检查过其他文章,并且我还放置了JScrollPane

import javax.swing.*;

public class Table {

    JFrame car;

    Table() {
        car = new JFrame();

        car.setTitle("Career");
        car.setSize(500, 500);
        car.setVisible(true);
        car.setLayout(null);

        String[] column = {"No.", "User Name", "Total Score"};
        String row[][] = {{"101", "Amit", "670000"},
        {"102", "Jai", "780000"},
        {"101", "Sachin", "700000"}};

        JTable jt = new JTable(row, column);
        jt.setBounds(20, 100, 225, 200);
        jt.setRowHeight(25);
        JScrollPane sp = new JScrollPane(jt);
        sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        car.add(sp);
        car.add(jt);
    }

    public static void main(String[] args) {
        new Table();
    }
}

在其他网站上,我在这里没有看到任何丢失的代码。 问题是什么?

  1. 删除此语句: car.add(jt); . 表格在滚动窗格中,并且滚动窗格已添加到 GUI
  2. 同时删除car.setLayout(null); & jt.setBounds(20,100,225,200); . 空布局会搞砸很多事情,包括滚动窗格的工作方式。
  3. 添加所有组件后调用setVisible ,并调用pack()
  4. 需要进一步的改变,BNI。

结果

在此处输入图片说明

import javax.swing.*;

public class Table {

    JFrame car;

    Table() {
        car = new JFrame();

        car.setTitle("Career");
        // this is just a guess. Add components then pack()
        //car.setSize(500, 500);
        //car.setLayout(null);

        String[] column = {"No.", "User Name", "Total Score"};
        String row[][] = {{"101", "Amit", "670000"},
        {"102", "Jai", "780000"},
        {"101", "Sachin", "700000"}};

        JTable jt = new JTable(row, column);
        //jt.setBounds(20, 100, 225, 200);
        jt.setRowHeight(25);
        JScrollPane sp = new JScrollPane(jt);
        sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        car.add(sp);
        //car.add(jt);
        car.pack();
        // this statement should be last, immediately after pack()
        car.setVisible(true);
    }

    public static void main(String[] args) {
        new Table();
    }
}

我找到了另一种方式,我得到了我想要的东西。

import javax.swing.*;

public class Table {

    JFrame car;

    Table() {
        car = new JFrame();
        car.setTitle("Career");
        car.setSize(500, 500);
        car.setVisible(true);
        car.setLayout(null);

        String[] column = {"No.", "User Name", "Total Score"};
        String row[][] = {{"101", "Amit", "670000"},
        {"102", "Jai", "780000"},
        {"101", "Sachin", "700000"}};

        JTable jt = new JTable(row, column);
        jt.setRowHeight(25);
        JScrollPane sp = new JScrollPane(jt);
        sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        sp.setBounds(20,100,225,200);
        car.add(sp);
    }

    public static void main(String[] args) {
        new Table();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM