Java GUI 不显示任何内容

标签 java user-interface

我是 Java 新手,我正在创建一个 Gui。我没有任何错误,但是当我运行 main 时,没有显示任何内容。 我不明白为什么。可以请人帮忙吗?

这是我的 GUI 代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.Border;

public class DartsGUI implements ActionListener {

    //Gui components
    JFrame mainDartsFrame;
    JPanel buttonsPanel,infoPanel;
    JRadioButton viewTableAsc,viewTableDesc,editScores,viewDetails,searchById;
    CardLayout cLayout;
    JTextArea table1,table2;
    JScrollPane scrollTable1,scrollTable2;
    JLabel edit,details,search;

    public void DartGUI() {
        mainDartsFrame= new JFrame("Darts Competition");
        mainDartsFrame.setSize(700, 500);
        mainDartsFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainDartsFrame.setLayout(new BorderLayout());
        mainDartsFrame.setLocationRelativeTo(null);
        createButtonsPanel();
        createInfoPanel();
        mainDartsFrame.setVisible(true);
    }

    private void createButtonsPanel() {
        JPanel buttonsPanel = new JPanel( new GridLayout(5,1) );
        viewTableAsc= new JRadioButton("Info Ascending Order");
        viewTableAsc.addActionListener(this);
        viewTableDesc= new JRadioButton("Info Descending Order");
        viewTableDesc.addActionListener(this);
        editScores= new JRadioButton("Edit Scores");
        editScores.addActionListener(this);
        viewDetails= new JRadioButton("View Details");
        viewDetails.addActionListener(this);
        searchById=new JRadioButton("Search Competitor");
        searchById.addActionListener(this);

        //Group radio buttons to ensure only one is chosen each time
        ButtonGroup radioButtons = new ButtonGroup();
        radioButtons.add(searchById);
        radioButtons.add(viewTableAsc);
        radioButtons.add(viewTableDesc);
        radioButtons.add(editScores);
        radioButtons.add(viewDetails);
        //Push buttons into the buttons Panel
        buttonsPanel.add(viewTableAsc);                    
        buttonsPanel.add(viewTableDesc);                            
        buttonsPanel.add(editScores);                        
        buttonsPanel.add(viewDetails);                            
        buttonsPanel.add(searchById);                            

        mainDartsFrame.add(buttonsPanel,BorderLayout.WEST);
    }

    private void createInfoPanel() {
        infoPanel = new JPanel();
        cLayout = new CardLayout();
        infoPanel.setLayout(cLayout);
        table1 = new JTextArea(10,10);
        table1.setEditable(false);
        scrollTable1 = new JScrollPane(table1);
        table2 = new JTextArea(10,10);
        table2.setEditable(false);
        scrollTable2 = new JScrollPane(table1);
        edit = new JLabel("Edit Scores");
        search= new JLabel("Search Id");
        details=new JLabel("View Details");

        infoPanel.add(scrollTable1, "viewTable1");
        infoPanel.add(scrollTable2, "viewTable2");
        infoPanel.add(edit, "edit");
        infoPanel.add(search, "searchId");
        infoPanel.add(details, "viewDetails");

        mainDartsFrame.add(infoPanel,BorderLayout.CENTER);
    }

    public void actionPerformed (ActionEvent e) {
        JRadioButton eventButton = (JRadioButton) e.getSource();

        if(eventButton==viewTableAsc){
            cLayout.show(infoPanel,"viewTable1");
        }
        else if(eventButton==viewTableDesc){
            cLayout.show(infoPanel, "viewTable2");
        }
        else if(eventButton==editScores){
            cLayout.show(infoPanel, "edit");
        }
        else if(eventButton==viewDetails){
            cLayout.show(infoPanel, "viewDetails");
        }
        else{
            cLayout.show(infoPanel, "searchId");
        }
    }
}

主类:

public class mainGui {

    public static void main(String[] args) {
        DartsGUI gui = new DartsGUI();
    }
}

最佳答案

您需要调用DartGUI方法:

public static void main(String[] args) {
    DartsGUI gui = new DartsGUI();
    gui.DartGUI();
}

关于Java GUI 不显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40707335/

相关文章:

javascript - 如何仅触发 .map 内创建的一堆其他下拉菜单中的一个下拉菜单

qt - 在运行时调整 QDialog 的大小

android - Android 中具有大量数据后异步任务完成的 Ui 更新最佳实践

java - 尝试从小程序切换到 JFrame

ios - 如何在 iOS 上创建宽度 = 最大子宽度的 StackView?

java - 为什么 jacoco :cover report 0 tests, 0 次失败,0 次错误用于 Play 2.2 中的测试?

java - 检查数据库并接收android通知

java - 运行 java webstart jnlp 文件时出现问题

java - 如何在受限沙箱中运行 java 代码(无网络、文件系统访问)

java - OpenJDK 11 是否支持 Java Flight Recorder?