2014-12-13 114 views
2

如何防止按鈕的UpSize?我使用一個帶有兩行的垂直框,在第一行→水平框中有許多控件,在第二行→按鈕,但按鈕非常大,如何防止這種刺激行爲?Java。防止放大按鈕

我試圖設置按鈕的最大尺寸,它的作品,但如何正確計算這個尺寸是多少?

對不起,我不好說英語。

例子:

import java.awt.Button; 
import java.awt.Frame; 
import java.awt.Label; 
import javax.swing.Box; 
import javax.swing.BoxLayout; 
import javax.swing.JProgressBar; 
import javax.swing.JSpinner; 
import javax.swing.SpinnerModel; 
import javax.swing.SpinnerNumberModel; 

public class TEST{ 
    public static void main(String[] args){ 
     Frame mainWindow = new Frame("hello"); 
     Box vertBox = new Box(BoxLayout.Y_AXIS); 
     mainWindow.add(vertBox); 

     Box firstLine = new Box(BoxLayout.X_AXIS); 
     vertBox.add(firstLine); 
     SpinnerModel sm = new SpinnerNumberModel(100, 0, 200, 1); 
     for(int i = 0; i < 10; i++){ 
      firstLine.add(new JSpinner(sm)); 
      firstLine.add(new Label("Hello")); 
     } 

     Box secondLine = new Box(BoxLayout.X_AXIS); 
     vertBox.add(secondLine); 
     secondLine.add(new JProgressBar()); 
     secondLine.add(new Button("RUN-THIS")); 

     mainWindow.pack(); 
     mainWindow.setVisible(true); 
    } 
} 
+1

想給我們看一些代碼嗎? 旁註:嗨,你用大寫字母I,你會比網上的一些(英語)人更好地說英語。 – Charlie 2014-12-13 15:33:06

+0

佈局管理器(類擴展LayoutManager)負責設置添加到容器的所有組件(在這種情況下爲按鈕)的大小和位置。每個LayoutManager專業化都有自己的做法。例如,GridLayout將平均分配組件中容器的可用空間,並相應地拉伸或收縮它們。其他佈局管理器(如FlowLayout)不會更改組件大小。但正如@Charlie所說的,很難確定沒有看到你的代碼。 – ulix 2014-12-13 15:57:57

+0

看到你所有的輸入,不是'import java.awt。*; import javax.swing。*;'好多了? – Charlie 2014-12-13 15:58:51

回答

2

按鈕,但按鈕非常放大,如何防止這種刺激性的行爲呢?

不要在一個Swing應用程序中使用AWT組件!

擺動組件以「J」開頭。你應該使用JFrame,JLabel,JButton。這將解決您的問題。 JButton會自動計算最大尺寸等於首選尺寸,BoxLayout會尊重這一點。

此外,類名稱只能用一個大寫字母開始。 「測試」應該是「測試」。

+0

謝謝,當我用Swing替換了AWT組件時,這個問題就消失了。 – biv 2014-12-13 16:30:07