簡體   English   中英

JFrame不顯示面板內容

[英]JFrame not displaying panel content

我剛開始學習JFrame,並嘗試使用grouplayout創建一個包含JLabels和JTextFields框架的框架,但是當我運行該程序時,面板內的內容沒有出現。 所有幫助表示贊賞。

    package practice;

import java.awt.*;

import javax.swing.*;


public class Boxc {
    public static void main(String[] args){
        JFrame frame = new JFrame("---------------------(-_-)---------------------"); 
        JLabel headText = new JLabel("Teach Me"); 

        //head text
        headText.setVerticalAlignment(JLabel.TOP);
        headText.setHorizontalAlignment(JLabel.CENTER);
        headText.setFont(headText.getFont().deriveFont(20f));




        frame.setVisible(true); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(700, 500);
        frame.setResizable(false);

        frame.setLocationRelativeTo(null); //Center start position
        frame.add(headText);

        //panel 1
        JPanel panel1 = new JPanel();
        GroupLayout layout = new GroupLayout(panel1);
        panel1.setLayout(layout);
        layout.setAutoCreateGaps(true);
        layout.setAutoCreateContainerGaps(true);


        JLabel uInput = new JLabel("When You Type:");
        JTextField uText = new JTextField("Enter Here");
        JLabel iReply = new JLabel("I Reply:");
        JTextField iText = new JTextField("Enter Here");

        GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup();
        hGroup.addGroup(layout.createParallelGroup().
                addComponent(uInput).addComponent(iText));
        hGroup.addGroup(layout.createParallelGroup().
                addComponent(uText).addComponent(iText));
       layout.setHorizontalGroup(hGroup);





        frame.add(panel1);
    }}

Java很奇怪。

所有這些都與您的JFrame方法的順序有關。 您必須始終做frame.setVisible(true); 最后,最好是用作初始化JFrame的代碼的最后一行。 在這種情況下,

frame.setVisible(true); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(700, 500);
    frame.setResizable(false);

    frame.setLocationRelativeTo(null); //Center start position
    frame.add(headText);

將被更改為

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(700, 500);
    frame.setResizable(false);

    frame.setLocationRelativeTo(null); //Center start position
    frame.add(headText);
    frame.setVisible(true); 

希望這可以幫助。

編輯:忽略更改從/到。 frame.setVisible(true); frame.add(panel1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM