Frage JTable ist beim Hinzufügen mit JScrollPane nicht sichtbar


Ich arbeite an einem GUI-basierten Projekt und ich muss eine jtable in einem jpanel hinzufügen. Aber ich bekomme nicht, warum die Tabelle nicht angezeigt wird, wenn Sie mit einem Scrollpanel hinzufügen. Auch beim Hinzufügen ohne Scrollpanel wird der Tabellenkopf nicht angezeigt. Danke für jede Hilfe ... Folgendes ist der Code, den ich verwende ..

import javax.swing.*;
import javax.swing.table.*;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;

public class FrmAddEditDN extends JDialog{
    JButton JBUpdate = new JButton(new ImageIcon("images/save.png"));
    JButton JBReset = new JButton("Reset",new ImageIcon("images/reset.png"));
    JButton JBCancel = new JButton("Cancel",new ImageIcon("images/cancel.png"));

    JLabel JLPic1 = new JLabel();
    JLabel JLBanner = new JLabel("Please fill-up all the required fields.");

public FrmAddEditDN(boolean ADD_STATE,JFrame OwnerForm,Connection srcCN,String srcSQL){
        super(OwnerForm,true);
        cnAEDN = srcCN;
        ADDING_STATE = ADD_STATE;
        JPanel JPContainer = new JPanel();
        JPContainer.setLayout(null);
                String[] columnNames = {
                    "Sr No","Invoice No","Invoice Date","Consignee","Description","Basic Amount","Invoice Amount","Payment Received",
                "EFT Date","Payment Earlier Received","Comm. @ %","Comm.Claim @ %","Comm. Received","Date","Bank","Remarks"};
                String[][] data = {
                    {"","","","","","","","","","","","","","","",""}
   };
                DefaultTableModel DTModel = new DefaultTableModel(data,columnNames);
                JTable table = new JTable(5,16);
                table.setBounds(15,295,screen.width-40,150);
                table.setRowHeight(30);
                table.setForeground(Color.black);
                table.setBackground(Color.white);
                JTableHeader header = table.getTableHeader();
                header.setForeground(Color.red);
                header.setBackground(Color.green);
                table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                table.getColumnModel().getColumn(0).setPreferredWidth(2);
                table.getColumnModel().getColumn(1).setPreferredWidth(50);
                JScrollPane tableContainer = new JScrollPane();
                tableContainer.setViewportView(table);

                JPContainer.add(tableContainer);

                getContentPane().add(JPContainer);
        setSize(screen.width-5,screen.height-45);
        setResizable(false);
        setLocation(0,0);
    }
}

5
2017-10-04 05:24


Ursprung


Antworten:


Du musst bestehen Component beim Erstellen eines JScrollPane.

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

7
2017-10-04 05:29