鍍金池/ 問答/Java/ java桌面程序在eclipse中運行與打包成exe在windows中運行相比窗

java桌面程序在eclipse中運行與打包成exe在windows中運行相比窗口大小不一,什么原因?

我是嵌入式系統(tǒng)程序員,工作需要編寫一個嵌入式設(shè)備的配置工具。由于不會windows編程,因此考慮邊學(xué)邊用java swing來實現(xiàn)。目前功能都實現(xiàn)了,只是在eclipse中運行窗口大小正常,而用exe4j打包成exe后在windows上運行時,窗口明顯要大很多,控件之間的間距也變了。而且感覺在eclipse中運行時界面更加美觀。不知道是什么原因造成的,如何讓windows下運行和在eclipse中保持一致。請哪位java大神予以指教。

clipboard.png

clipboard.png
以上兩張圖,第一張是用exe4j打包后在win10中運行的界面,第二張圖是eclipse中運行的和上面圖的比較。
窗口大小相差很大。

回答
編輯回答
逗婦乳

你用的是什么布局?

2017年4月7日 03:40
編輯回答
扯機(jī)薄

整個界面用VBox將多個panel添加到JFrame中。
示例:

Box vbox = Box.createVerticalBox();
vbox.add(new Panel1()); //Panel1也是用vbox和hbox的組合構(gòu)成。
vbox.add(Box.createVerticalStrut(10));

Box hbox = Box.createHorizontalBox();
hbox.add(new Panel20()); //Panel20也是用vbox和hbox的組合構(gòu)成。
hbox.add(new Panel21()); //Panel21也是用vbox和hbox的組合構(gòu)成。
hbox.add(new Panel22()); //Panel22也是用vbox和hbox的組合構(gòu)成。
vbox.add(hbox);

vbox.add(Box.createVerticalStrut(10));
vbox.add(new Panel3()); //Panel3用GridLayout。panel.setLayout(new GridLayout(2, 3, 10, 10));
vbox.add(Box.createVerticalStrut(10));
vbox.add(new Panel4()); //Panel4也是用vbox和hbox的組合構(gòu)成。
vbox.add(Box.createVerticalStrut(10));

// 添加最下面的4個按鈕
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(1,4,20,20));
panel.add(rd); //讀取按鈕
panel.add(wr); //寫入按鈕
panel.add(fr); //恢復(fù)出廠值按鈕
panel.add(ud); //固件升級按鈕
vbox.add(panel);

add(vbox, BorderLayout.CENTER);
pack();

2018年3月11日 08:54