簡體   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