簡體   English   中英

Java將JPanel裝入模態JDialog

[英]Java Fitting JPanel into Modal JDialog

我有一個返回JPanel的類:

  public static JPanel program(String csvName) {

        JPanel f = new JPanel();

        try {

            String path = System.getProperty("user.dir");

            String datafile = path+"/files/logic/"+csvName+".csv";
            FileReader fin = new FileReader(datafile);
            DefaultTableModel m = createTableModel(fin, null);
            JTable table = new JTable(m);
            JScrollPane stable = new JScrollPane (table);
            stable.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
            stable.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
            table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

            f.add(stable);

             f.setMinimumSize(new Dimension(900,500));
             JFrame desktopFrame = new JFrame();
             desktopFrame.add(f);
             desktopFrame.setSize(900, 500);
             desktopFrame.setVisible(true);

            toExcel(m, new File(path+"/files/logic/"+csvName+".csv"));

        } catch (Exception e) {
            e.printStackTrace();
        }

        return f;

    }

這就是用來以模塊化方式顯示JPanel的內容。

String csv = "war";
JPanel f = T1Data.program(csv);

JDialog desktopFrame = new JDialog();
desktopFrame.add(f);
desktopFrame.setModal(true);
desktopFrame.setSize(900, 500);
desktopFrame.setVisible(true);

但是我得到的結果使JPanel居中,而不適合JDialog。

看起來像這樣: http : //gyazo.com/4bc360e7d2c7cf7117a95d748d520838.png

我怎樣才能解決這個問題?

要使面板適合對話框的大小,可以更改對話框的LayoutManager或,因為顯然這是添加到對話框中的唯一面板,只需將面板設置為desktopFrame.setContentPane(f)而不是desktopFrame.setContentPane(f)desktopFrame.add(f) )。

JPanel使用的是FlowLayout ,如果將其更改為BorderLayout ,則滾動面板將被布局,從而填充整個容器。

您還應該考慮在setSize使用JDialog#pack

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM