NetBeans新建Java项目仅输出代码不显示JFrame UI问题求助
问题描述
在NetBeans中新建Java项目,创建JFrame文件indexx.java,添加按钮后预览正常,但运行时仅输出“Hello World”,无法显示JFrame界面。尝试在项目配置中设置主类为indexx无效,构建显示BUILD SUCCESS。
相关代码
indexx.java
import javax.swing.JOptionPane; public class indexx extends javax.swing.JFrame { public indexx() { initComponents(); } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { student = new javax.swing.JButton(); admin = new javax.swing.JButton(); exit = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setUndecorated(true); getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); student.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N student.setIcon(new javax.swing.ImageIcon(getClass().getResource("/studentedited.png"))); // NOI18N student.setText("Student"); student.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { studentActionPerformed(evt); } }); getContentPane().add(student, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 120, 150, -1)); admin.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N admin.setIcon(new javax.swing.ImageIcon(getClass().getResource("/admin_1.png"))); // NOI18N admin.setText("Admin"); admin.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { adminActionPerformed(evt); } }); getContentPane().add(admin, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 200, 150, -1)); exit.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N exit.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exitt.png"))); // NOI18N exit.setText("Exit"); exit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { exitActionPerformed(evt); } }); getContentPane().add(exit, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 280, 150, -1)); jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/t.jpg"))); // NOI18N jLabel1.setText(" "); getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 840, 480)); pack(); }// </editor-fold> private void studentActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void exitActionPerformed(java.awt.event.ActionEvent evt) { int a = JOptionPane.showConfirmDialog(null, "Exit Application?", "Select", JOptionPane.YES_NO_OPTION); if(a==0){ System.exit(0); }else{} // TODO add your handling code here: } private void adminActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(indexx.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(indexx.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(indexx.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(indexx.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new indexx().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton admin; private javax.swing.JButton exit; private javax.swing.JLabel jLabel1; private javax.swing.JButton student; // End of variables declaration }
当前主类 Quiz_Management.java
package com.mycompany.quiz_management; //import javax.swing.JFrame; /** * * @author HP */ public class Quiz_Management { public static void main(String[] args) { System.out.println("Hello World!"); } }
解决办法
- 验证主类配置:右键项目 → 属性 → 运行 → 主类,确保选中的是
indexx(注意包路径,若indexx在com.mycompany.quiz_management包下,需选择完整类名com.mycompany.quiz_management.indexx)。配置完成后,清理并重建项目:右键项目 → 清理,再右键 → 构建,最后运行。 - 修改主类代码启动界面:如果配置不生效,直接修改
Quiz_Management的main方法,替换原有输出代码为启动JFrame的逻辑:package com.mycompany.quiz_management; public class Quiz_Management { public static void main(String[] args) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new indexx().setVisible(true); } }); } } - 检查包一致性:确认
indexx.java的包名与Quiz_Management一致,若不一致,需在Quiz_Management中导入indexx类(比如import your.package.indexx;)。
内容的提问来源于stack exchange,提问作者Tnsae
相关产品推荐
相关产品推荐

