无法查看我的Java表中的列数据,问题

时间:2019-05-10 09:53:56

标签: java

您好,我试图在Java中创建我的第一个表,但是有些信息显示不正确。我正在研究,因为在开始时第一个错误是表格未显示列名,因此我添加了JScrollPane,现在表格完全消失了。

代码如下:

private JTable table;
private String [][] datosFila= {
        {"A1","A2","A3"},
        {"B1","B2","B3"},
        {"C1","C2","C3"}};
private String [] columnas= {"Prueba1","Prueba2","Prueba3"};


public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                SelectProfile window = new SelectProfile();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public SelectProfile( ) {
    frame = new JFrame();
    frame.setBounds(100, 100, 862, 498);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.setLocationRelativeTo(null);
    frame.getContentPane().setLayout(null);

    JLabel lblNewLabel = new JLabel("SELECCIONE PERFIL USUARIO");
    lblNewLabel.setToolTipText("");
    lblNewLabel.setBounds(115, 23, 755, 110);
    lblNewLabel.setBackground(Color.BLACK);
    lblNewLabel.setFont(new Font("Dialog", Font.BOLD, 41));
    frame.getContentPane().add(lblNewLabel);

    table = new JTable(datosFila,columnas);
    table.setBackground(SystemColor.control);
    table.setShowGrid(false);

    frame.getContentPane().add(table);
    JScrollPane js = new JScrollPane(table);
    frame.getContentPane().add(js);

    table.setBounds(215, 146, 345, 259);

感谢您的问候,

2 个答案:

答案 0 :(得分:1)

那里有几个问题。

  1. 将LayoutManager设置为null会导致一些奇怪的行为。删除它至少可以使元素显示出来。 您可以根据需要删除该行,但我建议您使用基本的LayoutManager(即FlowLayout)

  2. 您正在将JTable添加到JFrame和JScrollPane中。您只应将其添加到滚动窗格中。

我测试了以下代码,我认为它可以满足您的要求:

    public SelectProfile() {
        frame = new JFrame();
        frame.setBounds(100, 100, 862, 498);
        frame.setPreferredSize(new Dimension(862, 498));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setLocationRelativeTo(null);
        frame.getContentPane().setLayout(new FlowLayout());

        JLabel lblNewLabel = new JLabel("SELECCIONE PERFIL USUARIO");
        lblNewLabel.setToolTipText("");
        lblNewLabel.setBounds(115, 23, 755, 110);
        lblNewLabel.setBackground(Color.BLACK);
        lblNewLabel.setFont(new Font("Dialog", Font.BOLD, 41));
        frame.getContentPane().add(lblNewLabel);

        table = new JTable(datosFila,columnas);
        table.setBackground(SystemColor.control);
        table.setShowGrid(false);
        table.setBounds(215, 146, 345, 259);

        JScrollPane js = new JScrollPane(table);
        js.setPreferredSize(new Dimension(800,50));
        frame.getContentPane().add(js);

        frame.pack();
    }

应注意,我已将滚动窗格的首选大小设置为非常小,以便可以看到滚动窗格正在工作。您可能想要删除增加尺寸的那一行。

答案 1 :(得分:0)

每次执行frame.getContentPane()。add();

时,您都将替换内容窗格中的内容。

您应该阅读Oraclale的有关布局管理器的教程:https://docs.oracle.com/javase/tutorial/uiswing/layout/layoutlist.html