【问题标题】:column name are not showing in JTableJTable 中未显示列名
【发布时间】:2014-01-16 19:49:14
【问题描述】:

我正在尝试设计 JTable,但没有显示列名我不知道为什么要声明数组,有人可以看看这段代码 table = new JTable(data, columnNames); 我试图查看 java 教程,但我没有找到它现在告诉它

package AnimeAid;

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


    /**
     *
     * @author isslam
     */
    public class GuiInterface extends JFrame {
        JTable table;

         public static void main(String[] args) {
         GuiInterface is = new GuiInterface("t");
         is.setVisible(true);
         }

        public GuiInterface(String title){
        setSize(900, 700);
        setTitle(title);
        setDefaultCloseOperation(GuiInterface.EXIT_ON_CLOSE);
        String[] columnNames = {"#","Start","End","Translation column"};
        Object[][] data = {
        {"1", "00:00:01,600","00:00:04,080", "Mr Magnussen, please state your\n" +
        "full name for the record."},
        {"2", "00:00:04,080 ","00:00:07,040","Charles Augustus Magnussen."}};

        table = new JTable(data, columnNames);
        table.setFillsViewportHeight(true);
        table.setAutoResizeMode( JTable.AUTO_RESIZE_ALL_COLUMNS );
            TableColumn columnA = table.getColumn("#");
            columnA.setMinWidth(10);
            columnA.setMaxWidth(20);
            TableColumn columnB= table.getColumn("Start");
            columnB.setMinWidth(80);
            columnB.setMaxWidth(90);

            TableColumn columnC= table.getColumn("End");
            columnC.setMinWidth(80);
            columnC.setMaxWidth(90);


        JScrollPane scrollPane = new JScrollPane(table);
        add(scrollPane);


        //contaner part
        Container cp = getContentPane();
        cp.add(table);



        }}

【问题讨论】:

    标签: java swing jtable


    【解决方案1】:

    问题是,您已将表格添加到内容窗格中。这有效地将其从负责显示表格列标题的滚动窗格中删除。

    删除以下行

        Container cp = getContentPane();
        cp.add(table);
    

    【讨论】:

    • 所以不需要 Container cp = getContentPane();即使添加了 actionLisner
    • 您可以使用 getContentPane,但从 Java 5 开始,自动添加和删除委托等方法到内容窗格。
    【解决方案2】:
    package com.tom.mom;
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.table.TableColumn;
    
    
        /**
         *
         * @author isslam
         */
        public class GuiInterface extends JFrame {
            JTable table;
    
             public static void main(String[] args) {
             GuiInterface is = new GuiInterface("t");
             is.setVisible(true);
             }
    
            public GuiInterface(String title){
            setSize(900, 700);
            setTitle(title);
            setDefaultCloseOperation(GuiInterface.EXIT_ON_CLOSE);
            String[] columnNames = {"#","Start","End","Translation column"};
            Object[][] data = {
            {"1", "00:00:01,600","00:00:04,080", "Mr Magnussen, please state your\n" +
            "full name for the record."},
            {"2", "00:00:04,080 ","00:00:07,040","Charles Augustus Magnussen."}};
    
            table = new JTable(data, columnNames);
            table.setFillsViewportHeight(true);
            table.setAutoResizeMode( JTable.AUTO_RESIZE_ALL_COLUMNS );
                TableColumn columnA = table.getColumn("#");
                columnA.setMinWidth(10);
                columnA.setMaxWidth(20);
                TableColumn columnB= table.getColumn("Start");
                columnB.setMinWidth(80);
                columnB.setMaxWidth(90);
    
                TableColumn columnC= table.getColumn("End");
                columnC.setMinWidth(80);
                columnC.setMaxWidth(90);
    
    
            JScrollPane scrollPane = new JScrollPane(table);
    
           add(scrollPane);
    
    
    
    }
        }
    

    因为你已经扩展了 JFrame 并且你在类的构造函数中工作,这不过是一个 JFrame,所以你处于不需要获取区域和放置组件的位置。当我们执行此类型时在构造函数中编码然后我们不使用 getContentPane 并放置我们的组件。当您在构造函数中工作并尝试将一些组件放入框架中时需要它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 2014-04-21
      • 2012-10-31
      相关资源
      最近更新 更多