我有一個JPanel從一個類返回,然後一個按鈕被添加到它的底部在一個新的面板。使JPanel動態地適合JDialog
的代碼是這樣的:
String csv = csvName.getText();
String csvN = (String)ss.getSelectedItem()+csv+".csv";
JPanel f = T1Data.program(csvN);
JDialog desktopFrame = new JDialog();
desktopFrame.add(f);
desktopFrame.setModal(true);
desktopFrame.setSize(900, 500);
desktopFrame.setVisible(true);
這是T1Data.program類。
public static JPanel program(String csvName) {
JPanel f = new JPanel(new BorderLayout());
try {
String path = System.getProperty("user.dir");
String datafile = path+csvName;
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,BorderLayout.NORTH);
JButton btn = new JButton("Save Edits");
f.add(btn,BorderLayout.SOUTH);
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
toExcel(m, new File(path+csvName));
JOptionPane.showMessageDialog(f, "Saved CSV File!");
}
});
} catch (Exception e) {
e.printStackTrace();
}
return f;
}
當我運行它時,它會顯示正常和所有適合。我在評論中發佈了一個鏈接,因爲我現在不能在帖子中發佈3個鏈接。
如果我做得更小,發生這種情況:http://i.gyazo.com/0d7792cc11eaaba66c6743f5cb5addd7.png水平條和保存按鈕消失。
如果我做得更大,會發生這種情況:http://gyazo.com/b4820450324d308ea4b4710af8acc6a7.png JTable下有很大的差距。
我該如何解決這個問題,以便JTable動態調整大小以適合JDialog?
http://i.gyazo.com/7839a99436ae55931a7dcf7e9f93048a.png這是它看起來像通常的鏈接。 –
你爲什麼要調用table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); ? – ControlAltDel
因爲那麼如果我改變列寬度其他列變得更小,所以我寧願水平滾動在那裏@ControlAltDel –