我试图运行使用intellij的netbeans IDE创建的JFrameForm,我从netbeans复制了源代码并将其粘贴到新的Java类中,并在主函数中创建了对象,并设置了jframe包含类的可见性,并运行它,它给我以下错误< / p>
2019-09-21 17:36:31.363Exception in thread "main" java.awt.HeadlessException
at java.desktop/java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:208)
INFO at java.desktop/java.awt.Window.<init>(Window.java:548)
4744 at java.desktop/java.awt.Frame.<init>(Frame.java:423)
--- at java.desktop/java.awt.Frame.<init>(Frame.java:388)
[ Thread-1] at java.desktop/javax.swing.JFrame.<init>(JFrame.java:180)
j.LocalContainerEntityManagerFactoryBean at com.sunTravel.frontend.uiComponents.MainFrame.<init>
(MainFrame.java:19)
: at com.sunTravel.frontend.FrontendApplication.main(FrontendApplication.java:12)
Closing JPA EntityManagerFactory for persistence unit 'default'
2019-09-21 17:36:31.364 INFO 4744 --- [ Thread-1] .SchemaDropperImpl$DelayedDropActionImpl :
HHH000477: Starting delayed evictData of schema as part of SessionFactory shut-down'
2019-09-21 17:36:31.367 INFO 4744 --- [ Thread-1] com.zaxxer.hikari.HikariDataSource :
HikariPool-1 - Shutdown initiated...
2019-09-21 17:36:31.370 INFO 4744 --- [ Thread-1] com.zaxxer.hikari.HikariDataSource :
HikariPool-1 - Shutdown completed.
Process finished with exit code 1
下面提供了我的源代码,该如何解决?
@SpringBootApplication
public class FrontendApplication {
public static void main(String[] args) {
SpringApplication.run(FrontendApplication.class, args);
MainFrame mf = new MainFrame();
mf.setVisible(true);
}
}
MainFrame类
public class MainFrame extends javax.swing.JFrame {
public MainFrame() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
/**
* @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(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE,
null,ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MainFrame().setVisible(true);
}
});
}
}
答案 0 :(得分:1)
尝试禁用无头属性,如图here.所示 创建/显示JFrame之前,您必须先做一下。
System.setProperty("java.awt.headless", "false"); //Disables headless
一个例子:
SpringApplication.run(MyClass.class, args);
System.setProperty("java.awt.headless", "false");
SwingUtilities.invokeLater(() -> {
JFrame f = new JFrame("myframe");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
});
答案 1 :(得分:1)
尝试一下
public static void main(String[] args) {
SpringApplicationBuilder builder = new SpringApplicationBuilder(DemoApplication.class);
builder.headless(false);
builder.run(args);
MainFrame mf = new MainFrame();
mf.setVisible(true);
}
参考this答案