gpt4 book ai didi

java - Java中的Netbeans新窗口全黑?

转载 作者:行者123 更新时间:2023-11-30 04:49:17 26 4
gpt4 key购买 nike

我正在尝试为游戏制作 GUI。首先,我在 jFrame 中加载欢迎屏幕。他们输入详细信息,如果详细信息正确,它应该加载不同类别的下一个屏幕。它正确检查详细信息并打开新窗口但不显示它,它只是黑色?不知道是我电脑的问题还是我代码的问题?这是第二个窗口的代码:

import java.net.*;
import java.io.*;
import java.util.*;

public class ClientGUI extends javax.swing.JFrame {

/**
* Creates new form ClientGUI
*/
private BufferedWriter writer;
public ClientGUI() {
/*
* 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(ClientGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(ClientGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(ClientGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(ClientGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/*
* Create and display the form
*/
setVisible(true);
initComponents();
}

/**
* This method is called from within the constructor to initialise the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">

jButton1.setText("Move N");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText("Move E");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

jButton3.setText("Move S");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});

jButton4.setText("Move W");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});

jButton5.setText("Pickup");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});

jButton6.setText("Quit");
jButton6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton6ActionPerformed(evt);
}
});



private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

try{
writer.write("Move N");
writer.newLine();
writer.flush();
}
catch(Exception e){
System.out.println("error");
}

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try{
writer.write("Move E");
writer.newLine();
writer.flush();
}
catch(Exception e){
System.out.println("error");
}
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
try{
writer.write("Move S");
writer.newLine();
writer.flush();
}
catch(Exception e){
System.out.println("error");
}
}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
try{
writer.write("Move W");
writer.newLine();
writer.flush();
}
catch(Exception e){
System.out.println("error");
}
}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
try{
writer.write("PICKUP");
writer.newLine();
writer.flush();
}
catch(Exception e){
System.out.println("error");
}
}

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
setVisible(false);
}

/**
* @param args the command line arguments
*/
public void run(){
try {
final Socket server = new Socket("localhost", 30000);
//Creates the socket to be used, has to be final because of innerclass
InputStream in = server.getInputStream();
OutputStream out = server.getOutputStream();
//Creates the input and output streams

BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
//Creates the reader to read what the client inputs
final BufferedReader reader = new BufferedReader(new InputStreamReader(in));
//Creates the reader to read what the server writes to the client, has to be final as used in innerclass
writer = new BufferedWriter(new OutputStreamWriter(out));
//Creates the writer so the client can write on the commandline

Thread serverThread = new Thread(){
//Modifies the Thread class
public void run(){
boolean quit = false;
while (!quit){
String line = "";
try{
line = reader.readLine();
//Tries to read what the server has sent
}
catch(IOException e){
System.out.println("Error" + e.getMessage());
quit = true;
//If it is unable to read what the server sent, it quits the loop
}
if (line != "null"){
System.out.println(line);
//So long as the line sent is not "null" it prints the line to the client
}
}
}
};
serverThread.start();
//Starts the Thread

String input = stdin.readLine();
while (input != null) {
writer.write(input);
writer.newLine();
writer.flush();
input = stdin.readLine();
//Reads what the client writes
}
System.exit(1);
server.close();
}
catch (IOException e) {
System.out.println("error" + e.getMessage());
e.printStackTrace();
//Catches any errors with reading and writing to and from the server
}
}

加上 netbeans 默认情况下执行的一些额外 Swing 位。任何帮助将不胜感激,谢谢。

最佳答案

您的问题可能出在这里:

setVisible(true);
initComponents();

您应该颠倒顺序:

initComponents();
setVisible(true);

此外,您似乎正在做 Socket 工作。如果是这样,希望您注意在后台线程中执行此操作,而不是在主 Swing 事件线程 EDT 中执行此操作。

关于java - Java中的Netbeans新窗口全黑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10214074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com