2017-02-27 67 views
0

我想JTextField中使用的borderlayout在面板上的中心出現,但它沒有出現,按鈕出現,但JTextField中不..JTextField是沒有出現

import java.awt.*; 
import javax.swing.*; 
public class cal { 

    public static void main(String[] args) { 
     JFrame frame= new JFrame(); 
     frame.setVisible(true); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(400, 300); 
     frame.setLayout(new FlowLayout()); 
     JPanel panel= new JPanel(); 
     panel.setLayout(new BorderLayout()); 
     JTextField answer= new JTextField("0"); 
     panel.add(answer, BorderLayout.CENTER); 
     frame.add(panel); 
    } 

} 
+4

調用'frame.setVisible(true);'只有所有組件都被添加了。 – Berger

+3

什麼按鈕?您在此處沒有按鈕...您還應該「包裝」框架 –

回答

0

必須調用調用setVisible(真)添加組件後在您的框架上。

import java.awt.BorderLayout; 
import java.awt.FlowLayout; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 
public class cal { 

    public static void main(final String[] args) { 
     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(400, 300); 
     frame.getContentPane().setLayout(new FlowLayout()); 
     JPanel panel = new JPanel(); 
     panel.setLayout(new BorderLayout()); 
     JTextField answer = new JTextField("0"); 
     panel.add(answer, BorderLayout.CENTER); 
     frame.getContentPane().add(panel); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

} 
+5

解釋更改內容以及進行更改的原因。比較代碼並不能幫助您理解您爲什麼進行這些更改。 – camickr

+1

儘管此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – DimaSan

+0

你說得對。謝謝。 –