2013-12-16 37 views
1

我嘗試使用add.method將按鈕添加到框架。但只有框架彈出。 我沒有看到任何按鈕。Java:如何將一個按鈕添加到框架?

import javax.swing.*; 
public class okd { 
    public static void main() { 
     JFrame frame = new JFrame(); 
     JButton b1 = new JButton(); 
     frame.setSize(500,500); 
     frame.add(b1); 
     b1.setSize(400,400); 
     b1.setVisible(true); 
     frame.setVisible(true); 
    } 
} 
+0

看看[創建與Swing的GUI(HTTP://文檔.oracle.com/javase/tutorial/uiswing /),[如何使用按鈕](http://docs.oracle.com/javase/tutorial/uiswing/components/button.html)和[放置容器內的組件](http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html) – MadProgrammer

回答

3

您的按鈕已被添加到框架中。如果您刪除了frame.add()行,您會注意到不同之處。 '問題'在於以下幾點。

  • 您尚未指定使用 默認BorderLayout管理器生成幀的佈局。
  • 您尚未在frame.add()中指定約束。因此, 組件已被添加到 佈局的默認位置是BorderLayout.CENTER。添加到中心 的組件佔用了大量空間,因此您的按鈕爲何填滿整個框架。

以下是一些教程on layout managers.您可能希望在某個時候閱讀這些教程。

5

那裏有一個按鈕。添加一些文本,它會奇蹟般地出現。

public static void main(String[] args){ 
    JFrame frame = new JFrame(); 
    JButton b1 = new JButton(); 
    frame.setSize(500,500);  
    b1.setSize(400,400); 
    b1.setVisible(true); 
    b1.setText("HelloWorld"); 
    frame.add(b1); 
    frame.setVisible(true); 
}//SSCCE1 
+0

謝謝你的幫助。但它看起來不像我期望的按鈕。 :D你知道該怎麼做嗎?就像一個框架上的一個真正的按鈕。 – user3105629

+1

你是什麼意思的「真正的按鈕」 - 你可以鏈接一個真正的按鈕是什麼樣的例子? –

+0

嗯....你可以點擊它和一個邊框包圍它 – user3105629

0

要刪除按鈕的外觀大,你需要一個佈局管理器添加到代碼 像這樣:

import javax.swing.*; 
import java.awt.*; 
public static void main(String[] args) 
{ 
    JFrame frame = new JFrame(); 
    JButton b1 = new JButton(); 
    frame.setSize(500,500); 
    b1.setVisible(true); 
    b1.setText("HelloWorld"); 
    frame.setLayout(new FlowLayout()); 
    frame.add(b1); 
    frame.setVisible(true); 
} 
+0

這似乎並沒有回答這個問題 - 問題是問爲什麼按鈕不出現,但這個答案是「刪除按鈕的大外觀」。 – DaveyDaveDave

+0

@DaveyDaveDave:Man !!!查看列表上的最後一條評論。我的回覆是那個。 –

+0

我明白了;這並不是很清楚。 SO的問答形式並不真正適合那種會話式的回答​​ - 它不是一個論壇。理想情況下,這個額外的複雜性將是一個單獨的問題,你的答案是相關的,但這似乎過度殺傷,因爲PakkuDon公認的答案已經基本上說了同樣的事情。 – DaveyDaveDave

相關問題