【问题标题】:JTable doesn't show all over in JFrame in javaJTable在java中的JFrame中没有全部显示
【发布时间】:2013-09-03 22:58:28
【问题描述】:

我有JTable,然后我将它添加到JPanel。然后我将这个JPanel 添加到一个名为JFrame 的框架中。这个frame 正确显示了该表,但是当我最大化窗口时,JPanel 仍然很小。当我最大化框架时,我想在整个框架中显示JPanel。 这是我的代码:

import java.awt.BorderLayout;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

@SuppressWarnings("serial")
public class TestClass extends JPanel
{
    public TestClass()
    {
        Vector columnNames = new Vector();
        Vector data = new Vector();


            int columns =3;

            //  Get column names

            columnNames.addElement("Id");
            columnNames.addElement("Name");
            columnNames.addElement("Age");

            //  Get row data

            Vector row = new Vector(columns);
            row.addElement("1");
            row.addElement("Moshi");
            row.addElement("22");

            data.addElement( row );




        //  Create table with database data

        JTable table = new JTable(data, columnNames)
        {
            public Class getColumnClass(int column)
            {
                for (int row = 0; row < getRowCount(); row++)
                {
                    Object o = getValueAt(row, column);

                    if (o != null)
                    {
                        return o.getClass();
                    }
                }

                return Object.class;
            }
        };

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

    }

    public static void main(String[] args)
    {
        TestClass testClass  = new TestClass(); //**JPanel**
        JFrame frame = new JFrame();
        frame.setSize(500, 600);
        frame.getContentPane().add(testClass); //**add jpanel to frame**
        frame.setVisible(true);
    }
}

【问题讨论】:

    标签: java swing jtable jpanel layout-manager


    【解决方案1】:

    使用布局管理器根据可用大小调整组件大小,而不是 JPanel's 默认 FlowLayout 仅使用组件首选大小,例如

    setLayout(new GridLayout());
    

    【讨论】:

      猜你喜欢
      • 2012-10-29
      • 2017-07-20
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多