JTable没有在java中显示

时间:2017-07-15 02:28:07

标签: java swing jtable

我是java的新手。我想在我的GUI中显示一个表。我知道有几个这样的问题,但这对我没有帮助。任何帮助将不胜感激。

Test.java

package test;

import javax.swing.*;
import java.awt.*;


    class Test {

        JFrame frame;
        JTable table;
        Container pane;

        public void initGUI () {
            frame = new JFrame("Table");
            frame.setLayout(null);
            frame.setVisible(true);
            frame.setBounds(100, 100, 500, 500);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            pane = frame.getContentPane();

            Object[][] rows = {
                {"Amir", "Karachi"},
                {"Noman", "Quetta"},
                {"Salman", "Rawalpindi"}
            };
            Object[] cols = {"Name", "City"};

            table = new JTable(rows, cols);
            pane.add(new JScrollPane(table));
        }

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

    }

2 个答案:

答案 0 :(得分:2)

frame.setLayout(null);

不要使用空布局。

因为您不使用布局管理器,所以滚动窗格的大小为(0,0),因此无需绘制任何内容。

Swing旨在与布局管理器一起使用。保留框架的默认布局管理器为BorderLayout。

此外,在将所有组件添加到框架后,应使框架可见。

阅读How to Use Tables上Swing教程中的部分,了解工作示例以帮助您入门。使用教程中的代码结构,然后对其进行修改。

答案 1 :(得分:0)

frame.setLayout(null);除外,您可以排除getContentPane();。这是一个工作:

import javax.swing.*;
import java.awt.*;

class Test {

    JFrame frame;
    JTable table;
    Container pane;

    public void initGUI() {
        frame = new JFrame("Table");
        frame.setVisible(true);
        frame.setBounds(100, 100, 500, 500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Object[][] rows = {
            {"Amir", "Karachi"},
            {"Noman", "Quetta"},
            {"Salman", "Rawalpindi"}
        };
        Object[] cols = {"Name", "City"};

        table = new JTable(rows, cols);
        frame.add(new JScrollPane(table));

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       
        frame.pack();
        frame.setVisible(true);
    }

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

<强>输出: enter image description here