簡體   English   中英

Java-Jframe不顯示按鈕標簽或文本字段

[英]Java - Jframe not displaying Buttons Labels or textfields

我是Java的新用戶,但是當我嘗試創建新框架時,我得到的只是一個打開的帶有白色背景的新窗口,並且未添加任何按鈕,文本框或標簽。 我不知道我在做什么錯?

private static void MainGui(){

    MainInterfaces MainGui = new MainInterfaces();

    MainGui.setTitle(name+ "'s Inbox");
    MainGui.setSize(600,600);
    MainGui.setVisible(true);
    MainGui.setDefaultCloseOperation(EXIT_ON_CLOSE);
}

MainInterfaces類

class MainInterfaces extends JFrame implements ActionListener
{

    private JButton send;
    private JTextField to, subject, message;
    private JLabel toLbl, subjectLbl, messageLbl;


    public MainInterfaces() { 

        setLayout(new FlowLayout());
        toLbl = new JLabel("Recipient: ");
        subjectLbl = new JLabel("Subject: ");
        messageLbl = new JLabel("Message: ");

        to = new JTextField(32);
        subject = new JTextField(32);
        message = new JTextField(32);

        send = new JButton("SEND");

        add(toLbl);
        add(to);
        add(subjectLbl);
        add(subject);
        add(messageLbl);
        add(message);
        add(send);

    }

    public void actionPerformed(ActionEvent e)
    {
        // TODO Auto-generated method stub

    }
}

您的代碼無法編譯,因為存在很多錯誤( 您沒有main方法private static void MainGui(){沒有意義,等等)。 嘗試使用以下代碼,該代碼可以為我編譯並打開GUI,並根據需要顯示所有內容(按鈕,標簽等)

GUI工作

1)類MainGui.java

class MainGui{
    public static void main(String[] args) {

        MainInterfaces MainGui = new MainInterfaces();

        MainGui.setTitle("'s Inbox");
        MainGui.setSize(600,600);
        MainGui.setVisible(true);
        MainGui.setDefaultCloseOperation(MainGui.EXIT_ON_CLOSE);
    }
}

2)類MainInterfaces.java

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class MainInterfaces extends JFrame implements ActionListener
{

    private JButton send;
    private JTextField to, subject, message;
    private JLabel toLbl, subjectLbl, messageLbl;


    public MainInterfaces() { 



        setLayout(new FlowLayout());
        toLbl = new JLabel("Recipient: ");
        subjectLbl = new JLabel("Subject: ");
        messageLbl = new JLabel("Message: ");

        to = new JTextField(32);
        subject = new JTextField(32);
        message = new JTextField(32);

        send = new JButton("SEND");

        add(toLbl);
        add(to);
        add(subjectLbl);
        add(subject);
        add(messageLbl);
        add(message);
        add(send);




    }

    public void actionPerformed(ActionEvent e)
    {
        // TODO Auto-generated method stub

    }
}

我用一行代碼修復了它。 只需將“ setVisible(true)”方法切換到MainInterface類內部即可。 但是,請確保將其放在構造函數中的最后一行代碼中,否則將無法正常工作。 基本上,發生的事情是,在將框架本身設置為true的同時,隨后又添加了組件,因此未顯示它們。 最后放置“ setVisible(true)”可確保在顯示框架時添加了所有組件。

附帶說明,您可以在MainInterface中添加在MainGUI類中鍵入的所有方法。

這是MainGUI:

public class MainGUI 
    {

        public static void main(String[] args) 
        {
           new MainInterfaces();
        }

    }

這是MainInterfaces的樣子:

public class MainInterfaces extends JFrame implements ActionListener
{
    private JButton send; 
    private JTextField to, subject, message; 
    private JLabel toLbl, subjectLbl, messageLbl; 
    public MainInterfaces() 
    { 
        setTitle("(Name)'s Inbox");
        setSize(600,600);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLayout(new FlowLayout()); 
        toLbl = new JLabel("Recipient: "); 
        subjectLbl = new JLabel("Subject: "); 
        messageLbl = new JLabel("Message: "); 
        to = new JTextField(32); 
        subject = new JTextField(32); 
        message = new JTextField(32); 
        send = new JButton("SEND"); 
        add(toLbl); add(to); 
        add(subjectLbl); 
        add(subject); 
        add(messageLbl); 
        add(message); 
        add(send); 
        setVisible(true);
    } 
    public void actionPerformed(ActionEvent e) 
    { 

    }

}

暫無
暫無

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

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