[英]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.