![](/img/trans.png)
[英]Why won't the string “getPriceDisplay” appear in my JTextField, “totalTextField”?
[英]Java: JTextField won't appear
public class HandleUI {
public static void setUpUI(){
JPanel jPan = new JPanel();
FlowLayout flow = new FlowLayout();
jPan.setLayout(flow);
txtFld = new JTextField();
txtFld.setSize(550,5);
jPan.add(txtFld);
jPan.setSize(10,200);
MainClass.mainFrame.add(jPan);
int gapX = MainClass.mainFrame.getX()-(txtFld.getX()/2);
}
//Instance variables.
public static JTextField txtFld;
public JButton [] buttons;
}
public class MainClass {
public static void main (String [] args){
int frameX = Constants.FRAME_WIDTH;
int frameY = Constants.FRAME_HEIGHT;
mainFrame = new JFrame();
mainFrame.setSize(frameX,frameY);
mainFrame.setResizable(false);
mainFrame.setVisible(true);
HandleUI.setUpUI();
}
//Instance variables
public static JFrame mainFrame;
}
它應該顯示JTextField
,但是您可能已經猜到了JFrame
什么也不顯示。 我沒有故意輸入,但它們都在那里。 我找不到問題。 有人可以幫忙嗎?
1.)簡單地寫:
JTextField tField = new JTextField(10);
在這里,在構造函數中,您傳遞的是列數,這足以使FlowLayout
類的布局設置JTextField
的大小。
2.)行mainFrame.setVisible(true);
必須是main方法的最后一行。 您需要將代碼放在SwingUtilities.invokeLater(...)
內部的main()
方法中。
3.)不用在JFrame
上設置大小,而是使用JFrame.pack()
將窗口設置為首選大小。
4.)創建不必要的static
成員是設計缺陷。 嘗試使自己遠離此類事情。
5.)閱讀一些有關Swing中的並發性的知識
一個示例程序來獲得幫助( 使用此答案中指定的行順序 ):
import java.awt.*;
import javax.swing.*;
public class Example {
private void displayGUI() {
JFrame frame = new JFrame("Example Demo");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel contentPane = new JPanel();
JTextField tField = new JTextField(10);
contentPane.add(tField);
frame.setContentPane(contentPane);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
new Example().displayGUI();
}
};
EventQueue.invokeLater(runnable);
}
}
初始化UI 后,必須在JFrame
上調用setVisible(true)
。
只需拉以下行:
HandleUI.setUpUI();
... 就在之前:
mainFrame.setVisible(true);
...將達到目的。
附帶說明一下,我想指出的是,設置文本字段的大小實際上並不會像您那樣工作。 您可能會改用setPreferredSize(Dimension)
。 或者,甚至更好的是,僅使用布局來組織UI,而不是手動設置任何組件的大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.