[英]Java swing GUI creation
我正在開發Java GUI,我需要:
我對流布局有一個奇怪的結果,有時它堅持可見的寬度,有時甚至在一行中設置了500個按鈕。
我已經嘗試了每種布局以及多窗格。 仍然沒有運氣。
請指導.. 只需要一個想法,不需要代碼
更新了代碼 :對不起,這是我對stackoverflow的第一個問題
感謝您的及時答復事實上,我嘗試了很多,這是一個簡單的方法。
setLayout(new FlowLayout());
setTitle("JAVA GUI");
setSize(500,500);
setVisible(true);
add(new JLabel("row 1"));
JPanel panel1 = new JPanel(new FlowLayout());
for(int i=0;i<200;i++){
panel1.add(new JButton("b"+i));
}
add(panel1);
這里panel1出現在單行中,該行超出了屏幕的可見部分。
我認為可以通過將maximumsize設置為Jframe來解決,但是不知道如何將其大小設置為FULL SCREEN。
您可以嘗試MigLayout。 http://www.miglayout.com/
同樣,這個問題並不是堆棧溢出的真正問題。 提出問題的一個好方法是發布您的代碼,並告訴我們它有什么問題以及應該做什么。
雖然這不是“好的” stackOverflow問題的規范,但我自己對此沒有任何問題。 有些人只能處理代碼以外的任何東西。 我建議,如果您要發布代碼,則麻煩您發布將進行編譯,運行和演示情況的代碼。 它確實可以幫助我們這些人了解您所看到的以及您想做的事情。
您談論的是“行”; 請注意,行和列是諸如GridLayout和GridBagLayout之類的術語,但我認為它們不適合您所描述的內容。
在您的描述中,您沒有說要滾動的內容。 看來您想要整個UI滾動,我現在假設是這樣。
我會嘗試使用帶有垂直布局的BoxLayout的JPanel,用於整個主UI。 您將在其中添加一些內容:
第一個JPanel。
使用FlowLayout設置的另一個JPanel持有第一組按鈕。
下一個JLabel的另一個JPanel
還有第四個JPanel(使用FlowLayout設置),其中包含第二組按鈕。
現在,我將頂級面板放入JScrollPane中,然后將其放入Frame的CENTER部分(具有其默認的BorderLayout),然后看看會發生什么。 說實話,我不確定,但這就是我要開始的事情。
我無法告訴您,如果不運行代碼,為什么有時會出現奇怪的行為。
如先前的評論所述,使用ContentPane是必經之路。 這是您想要的工作示例:
public class Test {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("JAVA GUI");
JPanel panel1 = new JPanel();
panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS));
int nbLines = 10;
for (int i = 0; i < nbLines; i++) {
JPanel linePanel = new JPanel(new FlowLayout());
linePanel.add(new JLabel("row " + i));
for(int j = 0; j < 50; j++) {
linePanel.add(new JButton("b" + j));
}
panel1.add(linePanel);
}
frame.setContentPane(panel1);
//frame.setSize(500, 500);
frame.setExtendedState(frame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
frame.pack();
frame.setVisible(true);
}
}
這就是我得到的:
如果要使按鈕向左對齊,可以使用:
JPanel linePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.