有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法从另一个类访问主类

我正在使用NetBeans,我正在尝试编写一个具有用户界面的程序
我的主类是JFrame表单,其文件名是HotelHG.java
我可以在这个文件中毫无问题地编写所有代码,但是代码太复杂了,我永远也找不到我在里面寻找的代码
因此,我创建了一个名为DataBaseConnection的新Java类来放入一些代码

问题来了:当我这样做的时候

public class DataBaseConnection extends HotelHG{
    //Some Codes...
}

我得到:

Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError at sun.awt.Win32GraphicsConfig.getBounds(Native Method) at sun.awt.Win32GraphicsConfig.getBounds(Win32GraphicsConfig.java:215)

所以我试图公开我的HotelHG类组件,并试图直接访问它们 没有extends,但是DataBaseConnection无法找到HotelHG组件

简言之,我有一个A.java形式的类,它是JFrame形式,包含main(),我必须从B.java中的另一个类访问它的组件

更新:

我查了我的密码,没发现任何东西。所以我在main类中添加了代码,看看问题是否会得到解决。 但这一次它给出了C类的相同错误。。。我想我会发现这里发生了什么。 我会添加代码,所以如果你能看一看,并找到任何工作,请让我知道再次感谢

主要类别代码:

import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;
import javax.swing.JOptionPane;

import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;



public class HotelHG extends javax.swing.JFrame{

    private Connection Con = null;
    private String Url     = "jdbc:mysql://localhost:3306/";
    private String Db      = "hotel_hg";
    private String Dri     = "com.mysql.jdbc.Driver";
    private String Root    = "root";
    private String Pass    = "";
    protected ResultSet Res;

    Tab1Codes MyCodes1 = new Tab1Codes();

    /** Creates new form HotelHG */
//============================================================================== I N S T A L L A T I O N ===========
    public HotelHG() {
        Statement st;
        try{
            st = OpenConnection();
            Res = st.executeQuery("select * from idpass");
        }catch(Exception ex){
            JOptionPane.showConfirmDialog(null,"Няма Достъп до Информатции!",
                    "Опит за Свързване на бази данни...",
                    JOptionPane.PLAIN_MESSAGE,
                    JOptionPane.ERROR_MESSAGE);
        }
        initComponents();
    }
//============================================================================== I N S T A L L A T I O N ===========


//=================================================================================================== OPEN CONNNECTION
    private Statement OpenConnection() throws Exception{
        try{
            Class.forName(Dri).newInstance();
        }catch(Exception ex){
            JOptionPane.showConfirmDialog(null,"Връзка с Дата Бейс Не е Успешна-Driver!",
                    "Опит за Свързване на бази данни...",
                    JOptionPane.PLAIN_MESSAGE,
                    JOptionPane.ERROR_MESSAGE);
        }
        try{
            Con = DriverManager.getConnection(Url + Db, Root, Pass);
        }catch(Exception ex){
            JOptionPane.showConfirmDialog(null,"Връзка с Дата Бейс Не е Успешна-Url!",
                    "Опит за Свързване на бази данни...",
                    JOptionPane.PLAIN_MESSAGE,
                    JOptionPane.ERROR_MESSAGE);
        }
        return Con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                    ResultSet.CONCUR_UPDATABLE);
    }
//=================================================================================================== OPEN CONNNECTION

//=================================================================================================== CLOSE CONNECTION
    public void CloseConnection(){
        try
        {
            Con.close();
        }catch(Exception ex)
        {
            Logger.getLogger(HotelHG.class.getName()).log(Level.SEVERE,null,ex);
        }
    }
//=================================================================================================== CLOSE CONNECTION

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        TabMenu = new javax.swing.JTabbedPane();
        Tab1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jSeparator1 = new javax.swing.JSeparator();
        IDBox1 = new javax.swing.JTextField();
        PassBox = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        EnterButton1 = new javax.swing.JButton();
        StatusLabel1 = new javax.swing.JLabel();
        ExitButton1 = new javax.swing.JButton();
        Tab2 = new javax.swing.JPanel();
        jTextField1 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        Tab3 = new javax.swing.JPanel();
        Tab4 = new javax.swing.JPanel();
        Tab5 = new javax.swing.JPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Хотел Heaven Garden");
        setMinimumSize(null);
        setResizable(false);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });

        TabMenu.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
        TabMenu.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        TabMenu.setFont(new java.awt.Font("Consolas", 1, 14)); // NOI18N

        Tab1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED, null, new java.awt.Color(204, 0, 0), new java.awt.Color(204, 0, 0), null));

        jLabel1.setFont(new java.awt.Font("Consolas", 2, 24));
        jLabel1.setText("Heaven Garden Главно меню:"); // NOI18N
        jLabel1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        jLabel2.setFont(new java.awt.Font("Consolas", 2, 24));
        jLabel2.setText("-Напишете паролата си за да активирате контролите на меню..."); // NOI18N
        jLabel2.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        jLabel3.setFont(new java.awt.Font("Consolas", 2, 24));
        jLabel3.setText("-Само администратора може да активира всичките менюта!"); // NOI18N
        jLabel3.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        jLabel4.setFont(new java.awt.Font("Consolas", 2, 24));
        jLabel4.setText("-При три грешени опити програмата ще се заключва!"); // NOI18N
        jLabel4.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        IDBox1.setFont(new java.awt.Font("Consolas", 2, 18));

        PassBox.setFont(new java.awt.Font("Consolas", 2, 18));

        jLabel5.setFont(new java.awt.Font("Consolas", 0, 18));
        jLabel5.setText("Потребителско Име:");

        jLabel6.setFont(new java.awt.Font("Consolas", 0, 18));
        jLabel6.setText("Парола:");

        EnterButton1.setFont(new java.awt.Font("Consolas", 1, 18));
        EnterButton1.setText("Влизай");
        EnterButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                EnterButton1ActionPerformed(evt);
            }
        });

        StatusLabel1.setFont(new java.awt.Font("Consolas", 0, 24));
        StatusLabel1.setText("Статус:Няма Достъп");

        ExitButton1.setFont(new java.awt.Font("Consolas", 1, 18));
        ExitButton1.setText("Изход");
        ExitButton1.setActionCommand("jButton1");

        javax.swing.GroupLayout Tab1Layout = new javax.swing.GroupLayout(Tab1);
        Tab1.setLayout(Tab1Layout);
        Tab1Layout.setHorizontalGroup(
            Tab1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(Tab1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(Tab1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(jSeparator1)
                    .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, Tab1Layout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addGroup(Tab1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel6)
                            .addComponent(IDBox1)
                            .addComponent(PassBox)
                            .addComponent(EnterButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(StatusLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(ExitButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addContainerGap(15, Short.MAX_VALUE))
        );
        Tab1Layout.setVerticalGroup(
            Tab1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(Tab1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(4, 4, 4)
                .addComponent(jLabel5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(IDBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel6)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(PassBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(EnterButton1)
                .addGap(18, 18, 18)
                .addComponent(StatusLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(ExitButton1)
                .addContainerGap(12, Short.MAX_VALUE))
        );

        TabMenu.addTab("Главно меню", new javax.swing.ImageIcon(getClass().getResource("/Pics/Admin.png")), Tab1); // NOI18N
        Tab1.getAccessibleContext().setAccessibleName("Tab1");

        Tab2.setBorder(javax.swing.BorderFactory.createCompoundBorder(null, new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED)));
        Tab2.setEnabled(false);

        jTextField1.setText("jTextField1");

        jButton1.setText("jButton1");

        javax.swing.GroupLayout Tab2Layout = new javax.swing.GroupLayout(Tab2);
        Tab2.setLayout(Tab2Layout);
        Tab2Layout.setHorizontalGroup(
            Tab2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(Tab2Layout.createSequentialGroup()
                .addGap(32, 32, 32)
                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButton1)
                .addContainerGap(633, Short.MAX_VALUE))
        );
        Tab2Layout.setVerticalGroup(
            Tab2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(Tab2Layout.createSequentialGroup()
                .addGap(48, 48, 48)
                .addGroup(Tab2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton1))
                .addContainerGap(360, Short.MAX_VALUE))
        );

        TabMenu.addTab("Рецепция", new javax.swing.ImageIcon(getClass().getResource("/Pics/Reception.png")), Tab2); // NOI18N
        Tab2.getAccessibleContext().setAccessibleName("Tab2");

        Tab3.setBorder(javax.swing.BorderFactory.createCompoundBorder(null, new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED)));
        Tab3.setEnabled(false);

        javax.swing.GroupLayout Tab3Layout = new javax.swing.GroupLayout(Tab3);
        Tab3.setLayout(Tab3Layout);
        Tab3Layout.setHorizontalGroup(
            Tab3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 803, Short.MAX_VALUE)
        );
        Tab3Layout.setVerticalGroup(
            Tab3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 431, Short.MAX_VALUE)
        );

        TabMenu.addTab("Резервация", new javax.swing.ImageIcon(getClass().getResource("/Pics/Reservation.png")), Tab3); // NOI18N
        Tab3.getAccessibleContext().setAccessibleName("Tab3");

        Tab4.setBorder(javax.swing.BorderFactory.createCompoundBorder(null, new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED)));
        Tab4.setEnabled(false);

        javax.swing.GroupLayout Tab4Layout = new javax.swing.GroupLayout(Tab4);
        Tab4.setLayout(Tab4Layout);
        Tab4Layout.setHorizontalGroup(
            Tab4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 803, Short.MAX_VALUE)
        );
        Tab4Layout.setVerticalGroup(
            Tab4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 431, Short.MAX_VALUE)
        );

        TabMenu.addTab("Ресторант", new javax.swing.ImageIcon(getClass().getResource("/Pics/desk.png")), Tab4); // NOI18N
        Tab4.getAccessibleContext().setAccessibleName("Tab4");

        Tab5.setBorder(javax.swing.BorderFactory.createCompoundBorder(null, javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED)));
        Tab5.setEnabled(false);

        javax.swing.GroupLayout Tab5Layout = new javax.swing.GroupLayout(Tab5);
        Tab5.setLayout(Tab5Layout);
        Tab5Layout.setHorizontalGroup(
            Tab5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 805, Short.MAX_VALUE)
        );
        Tab5Layout.setVerticalGroup(
            Tab5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 433, Short.MAX_VALUE)
        );

        TabMenu.addTab("Работници", new javax.swing.ImageIcon(getClass().getResource("/Pics/w1.png")), Tab5); // NOI18N
        Tab5.getAccessibleContext().setAccessibleName("Tab5");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(TabMenu, javax.swing.GroupLayout.PREFERRED_SIZE, 820, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(TabMenu, javax.swing.GroupLayout.PREFERRED_SIZE, 518, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        TabMenu.getAccessibleContext().setAccessibleName("TabMenu");

        pack();
    }// </editor-fold>                        
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new HotelHG().setVisible(true);
            }
        });
    }

//============================================================================== FORM OPEN - CLOSE
    private void formWindowClosing(WindowEvent evt) {                                   
        CloseConnection();
    }                                  

    private void formWindowOpened(WindowEvent evt) {                                  
        if(!MyCodes1.LockAll())
            System.exit(1);
    }                                 
//============================================================================== FORM OPEN - CLOSE

//============================================================================== TAB1 CODES
    private void EnterButton1ActionPerformed(ActionEvent evt) {                                             
        MyCodes1.AdministrationControl();
    }                                            
//============================================================================== TAB1 CODES







    // Variables declaration - do not modify                     
    public javax.swing.JButton EnterButton1;
    public javax.swing.JButton ExitButton1;
    public javax.swing.JTextField IDBox1;
    public javax.swing.JTextField PassBox;
    public javax.swing.JLabel StatusLabel1;
    public javax.swing.JPanel Tab1;
    public javax.swing.JPanel Tab2;
    public javax.swing.JPanel Tab3;
    public javax.swing.JPanel Tab4;
    public javax.swing.JPanel Tab5;
    public javax.swing.JTabbedPane TabMenu;
    public javax.swing.JButton jButton1;
    public javax.swing.JLabel jLabel1;
    public javax.swing.JLabel jLabel2;
    public javax.swing.JLabel jLabel3;
    public javax.swing.JLabel jLabel4;
    public javax.swing.JLabel jLabel5;
    public javax.swing.JLabel jLabel6;
    public javax.swing.JSeparator jSeparator1;
    public javax.swing.JTextField jTextField1;
    // End of variables declaration                   

}

C类代码:

import javax.swing.JOptionPane;

public class Tab1Codes extends HotelHG{

    byte PassTry;
//============================================================================== LOCK ALL TABS
    public boolean LockAll(){
        try
        {
            TabMenu.setEnabledAt(1, false);
            TabMenu.setEnabledAt(2, false);
            TabMenu.setEnabledAt(3, false);
            TabMenu.setEnabledAt(4, false);
        }catch(Exception e)
        {
            JOptionPane.showConfirmDialog(null, "Не можем да заключим разделите!",
                    "Заключване на разделите...",
                    JOptionPane.PLAIN_MESSAGE,
                    JOptionPane.ERROR_MESSAGE);
            return false;
        }
        return true;
    }
//============================================================================== LOCK ALL TABS

//============================================================================== ADMINISTRATION
    public void AdministrationControl(  ){
        PassTry=0;
        byte No=1;
        do{
            if(ChechForIDPass(No)){
                FindUserType(No);
                No=4;
            }
            else{
                No++;
                PassTry++;
                JOptionPane.showConfirmDialog(null, "Грешно Потребителско име  или Парола!",
                       "П. Име-Парола Контрол...",
                        JOptionPane.PLAIN_MESSAGE,
                        JOptionPane.ERROR_MESSAGE);
            }
                        if(No == 1) 
                        if(No == 2) 
                        if(No == 3) 
                        TabMenu.setEnabledAt(2, false);
                        PassTry=0;
        }while(No<4);
    }
//============================================================================== ADMINISTRATION

//============================================================================== CHECK FOR ID PASS
    private boolean ChechForIDPass(byte NO){
        try {
            Res.absolute(NO);
            if(IDBox1.getText().equals(Res.getString("ID"))) {
                if(PassBox.getText().equals(Res.getString("Pass"))) {
                    return true;
                }
            }
        }catch(Exception ex){
            JOptionPane.showConfirmDialog(null, "Грешка с Връзка на Данни!",
                    "П. Име-Парола Контрол...",
                    JOptionPane.PLAIN_MESSAGE,
                    JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }
//============================================================================== CHECK FOR ID PASS

//============================================================================== FIND USER TYPE
    private void FindUserType(byte NO){
        try {
            Res.absolute(NO);
            if(Res.getString("access").equalsIgnoreCase("Admin")){
                PassTry=0;
                StatusLabel1.setText("Статус:Админ Достъп");
                JOptionPane.showConfirmDialog(null, "Верна Парала! Здравей Администратор!",
                       "П. Име-Парола Контрол...",
                        JOptionPane.PLAIN_MESSAGE,
                        JOptionPane.INFORMATION_MESSAGE);
                TabMenu.setEnabledAt(2, true);
                TabMenu.setEnabledAt(3, true);
                TabMenu.setEnabledAt(4, true);
                TabMenu.setEnabledAt(5, true);
            }
            if(Res.getString("access").equalsIgnoreCase("Reception")){
                PassTry=0;
                StatusLabel1.setText("Статус:Ресепция Достъп");
                JOptionPane.showConfirmDialog(null, "Верна Парала! Здравей Потребител!",
                       "П. Име-Парола Контрол...",
                        JOptionPane.PLAIN_MESSAGE,
                        JOptionPane.INFORMATION_MESSAGE);
                TabMenu.setEnabledAt(2, true);
                TabMenu.setEnabledAt(3, true);
            }
            if(Res.getString("access").equalsIgnoreCase("Worker")){
                PassTry=0;
                StatusLabel1.setText("Статус:Работник Достъп");
                JOptionPane.showConfirmDialog(null, "Верна Парала! Здравей Потребител!",
                       "П. Име-Парола Контрол...",
                        JOptionPane.PLAIN_MESSAGE,
                        JOptionPane.INFORMATION_MESSAGE);
                TabMenu.setEnabledAt(4, true);
                TabMenu.setEnabledAt(5, true);
            }

        }catch(Exception ex){
            JOptionPane.showConfirmDialog(null, "Грешка с Връзка на Данни!",
                    "П. Име-Парола Контрол...",
                    JOptionPane.PLAIN_MESSAGE,
                    JOptionPane.ERROR_MESSAGE);
        }
    }
//============================================================================== FIND USER TYPE
}

共 (2) 个答案

  1. # 1 楼答案

    1. 基类HotelHG中的main方法没有继承到类tab1code中,因此您应该在子类中复制整个main方法,并更改代码以在其中创建类的对象

    2. 您没有提到如何运行文件,请详细说明如何运行程序

      public static void main(String args[]) {
          java.awt.EventQueue.invokeLater(new Runnable() {
          public void run() {
              new Tab1Codes().setVisible(true);
          }
      });
      

      }

    将此方法添加到新的子类并运行子类文件可能会起作用

    关于
    塔沙尔·乔希,那格浦尔

  2. # 2 楼答案

    问题的原因并非来自扩展HotelHG-原因隐藏在“//某些代码”中。如果有太多的方法调用,则虚拟机会引发StackOverFlowError,通常是在递归算法没有正确终止时,如下所示:

     public void createStackOverFlowError() {
        createStackOverFlowError();
     }
    

    所以要消除这个错误:在应用程序代码中寻找产生这种“循环”的方法