2012-04-03 7 views
0

나는 약간의 실수 일 것이라고 확신하지만 찾을 수 없습니다. 내 서버 GUI를 시작하면 그 구성 요소가 나타나지 않습니다. 내가 가진 모든 것은 정확한 크기의 빈 페이지입니다.스윙 : GUI에 내 구성 요소가 표시되지 않습니다.

import java.io.IOException; 
import java.net.ServerSocket; 
import java.net.Socket; 

public class ServerGUI extends javax.swing.JFrame { 

    private ServerSocket server; 
    private int port; 
    private int numberOfObject; 
    private int counter = 1; 
    private ObjectClass[] Object; 
    private Server bss; 
    public static volatile int[] Allocation; 

    public void setServerGUI(Server bss, int port, int numberOfObject, ObjectClass[] Object) { 
     this.bss = bss; 
     this.port = port; 
     this.numberOfObject = numberOfObject; 
     this.Object = Object; 
    } 

    public ServerGUI() { 

     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(ServerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (InstantiationException ex) { 
      java.util.logging.Logger.getLogger(ServerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (IllegalAccessException ex) { 
      java.util.logging.Logger.getLogger(ServerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
      java.util.logging.Logger.getLogger(ServerGUI.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() { 
       setVisible(true); 
      } 
     }); 
     initComponents(); 

    } 

    public void startServing() { 
     System.out.println("STARTSERVING"); 
     try { 
      server = new ServerSocket(port); 
     } catch (IOException e1) { 
      System.out.println("IOException in startServing()"); 
     } 
     while (true) { 
      Socket ADClient = null; 

      int free=0; 
      try { 
       ADClient = server.accept(); 
       for (int j = 0; j < numberOfObject; j++) { 
        if ((Allocation[j] == -1)) { 
         free = j; 
         Allocation[free] = counter; 
        } 

       } 
       System.out.println("" + Object[free].getNumber()); 
       new ServerThread(ADClient, counter++, Object[free]).start(); 


      } catch (IOException e) { 
       System.out.println("IOException: server.accept() schlug fehl."); 
      } 
     } 
    } 

    /** 
    * This method is called from within the constructor to initialize 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"> 
    private void initComponents() { 

     scrollPaneState1 = new javax.swing.JScrollPane(); 
     textAreaState1 = new javax.swing.JTextArea(); 
     scrollPaneServer1 = new javax.swing.JScrollPane(); 
     textAreaServer1 = new javax.swing.JTextArea(); 
     scrollPaneState2 = new javax.swing.JScrollPane(); 
     textAreaState2 = new javax.swing.JTextArea(); 
     scrollPaneServer2 = new javax.swing.JScrollPane(); 
     textAreaServer2 = new javax.swing.JTextArea(); 
     scrollPaneState3 = new javax.swing.JScrollPane(); 
     textAreaState3 = new javax.swing.JTextArea(); 
     scrollPaneServer3 = new javax.swing.JScrollPane(); 
     textAreaServer3 = new javax.swing.JTextArea(); 
     scrollPaneMain = new javax.swing.JScrollPane(); 
     textAreaMain = new javax.swing.JTextArea(); 
     labelNr1 = new javax.swing.JLabel(); 
     labelNr2 = new javax.swing.JLabel(); 
     labelNr3 = new javax.swing.JLabel(); 
     labelStateResponse1 = new javax.swing.JLabel(); 
     labelStateResponse2 = new javax.swing.JLabel(); 
     labelStateResponse3 = new javax.swing.JLabel(); 
     labelServerResponse1 = new javax.swing.JLabel(); 
     labelServerResponse2 = new javax.swing.JLabel(); 
     labelServerResponse3 = new javax.swing.JLabel(); 
     labelMainResponse = new javax.swing.JLabel(); 
     beendenButton = new javax.swing.JButton(); 
     backButton = new javax.swing.JButton(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
     setTitle("Server - Running"); 

     scrollPaneState1.setEnabled(false); 

     textAreaState1.setColumns(20); 
     textAreaState1.setRows(5); 
     scrollPaneState1.setViewportView(textAreaState1); 

     scrollPaneServer1.setEnabled(false); 

     textAreaServer1.setColumns(20); 
     textAreaServer1.setRows(5); 
     scrollPaneServer1.setViewportView(textAreaServer1); 

     scrollPaneState2.setEnabled(false); 

     textAreaState2.setColumns(20); 
     textAreaState2.setRows(5); 
     scrollPaneState2.setViewportView(textAreaState2); 

     scrollPaneServer2.setEnabled(false); 

     textAreaServer2.setColumns(20); 
     textAreaServer2.setRows(5); 
     scrollPaneServer2.setViewportView(textAreaServer2); 

     scrollPaneState3.setEnabled(false); 

     textAreaState3.setColumns(20); 
     textAreaState3.setRows(5); 
     scrollPaneState3.setViewportView(textAreaState3); 

     scrollPaneServer3.setEnabled(false); 

     textAreaServer3.setColumns(20); 
     textAreaServer3.setRows(5); 
     scrollPaneServer3.setViewportView(textAreaServer3); 

     scrollPaneMain.setEnabled(false); 

     textAreaMain.setColumns(20); 
     textAreaMain.setRows(5); 
     scrollPaneMain.setViewportView(textAreaMain); 

     labelNr1.setText("Nr: "); 
     labelNr1.setDoubleBuffered(true); 

     labelNr2.setText("Nr: "); 

     labelNr3.setText("Nr: "); 

     labelStateResponse1.setText("State Respone:"); 

     labelStateResponse2.setText("State Response:"); 

     labelStateResponse3.setText("State Response:"); 

     labelServerResponse1.setText("Server Resonse:"); 

     labelServerResponse2.setText("Server Response:"); 

     labelServerResponse3.setText("Server Response:"); 

     labelMainResponse.setText("Main Response:"); 

     beendenButton.setText("beenden"); 
     beendenButton.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       beendenButtonActionPerformed(evt); 
      } 
     }); 

     backButton.setText("zurück"); 
     backButton.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       backButtonActionPerformed(evt); 
      } 
     }); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(layout.createSequentialGroup() 
         .addContainerGap() 
         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
          .addGroup(layout.createSequentialGroup() 
           .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
            .addComponent(labelNr1) 
            .addComponent(labelStateResponse1)) 
           .addGap(199, 199, 199) 
           .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
            .addComponent(scrollPaneState2, javax.swing.GroupLayout.PREFERRED_SIZE, 268, javax.swing.GroupLayout.PREFERRED_SIZE) 
            .addComponent(labelServerResponse2) 
            .addComponent(labelStateResponse2) 
            .addComponent(labelNr2)) 
           .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
           .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
            .addComponent(scrollPaneState3) 
            .addGroup(layout.createSequentialGroup() 
             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
              .addComponent(labelServerResponse3) 
              .addComponent(labelStateResponse3) 
              .addComponent(labelNr3)) 
             .addGap(0, 0, Short.MAX_VALUE)))) 
          .addGroup(layout.createSequentialGroup() 
           .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) 
            .addComponent(scrollPaneServer1) 
            .addComponent(scrollPaneState1, javax.swing.GroupLayout.PREFERRED_SIZE, 268, javax.swing.GroupLayout.PREFERRED_SIZE)) 
           .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
           .addComponent(scrollPaneServer2, javax.swing.GroupLayout.PREFERRED_SIZE, 268, javax.swing.GroupLayout.PREFERRED_SIZE) 
           .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
           .addComponent(scrollPaneServer3)) 
          .addGroup(layout.createSequentialGroup() 
           .addComponent(labelServerResponse1) 
           .addGap(738, 738, 738)) 
          .addComponent(scrollPaneMain))) 
        .addGroup(layout.createSequentialGroup() 
         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
          .addGroup(layout.createSequentialGroup() 
           .addContainerGap() 
           .addComponent(labelMainResponse)) 
          .addGroup(layout.createSequentialGroup() 
           .addGap(326, 326, 326) 
           .addComponent(backButton) 
           .addGap(18, 18, 18) 
           .addComponent(beendenButton))) 
         .addGap(0, 0, Short.MAX_VALUE))) 
       .addContainerGap()) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
       .addContainerGap() 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(labelNr1) 
        .addComponent(labelNr2) 
        .addComponent(labelNr3)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(labelStateResponse1) 
        .addComponent(labelStateResponse2) 
        .addComponent(labelStateResponse3)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
        .addComponent(scrollPaneState2, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(scrollPaneState1, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(scrollPaneState3, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(labelServerResponse1) 
        .addComponent(labelServerResponse2) 
        .addComponent(labelServerResponse3)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(scrollPaneServer2, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(scrollPaneServer1, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(scrollPaneServer3, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addComponent(labelMainResponse) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addComponent(scrollPaneMain, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(beendenButton) 
        .addComponent(backButton)) 
       .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
     ); 

     pack(); 
    }// </editor-fold> 

    private void beendenButtonActionPerformed(java.awt.event.ActionEvent evt) { 
     System.exit(0); 
    } 

    private void backButtonActionPerformed(java.awt.event.ActionEvent evt) { 
     bss.setVisible(true); 
     this.dispose(); 
    } 

    // Variables declaration - do not modify 
    private javax.swing.JButton backButton; 
    private javax.swing.JButton beendenButton; 
    private javax.swing.JLabel labelNr1; 
    private javax.swing.JLabel labelNr2; 
    private javax.swing.JLabel labelNr3; 
    private javax.swing.JLabel labelMainResponse; 
    private javax.swing.JLabel labelServerResponse1; 
    private javax.swing.JLabel labelServerResponse2; 
    private javax.swing.JLabel labelServerResponse3; 
    private javax.swing.JLabel labelStateResponse1; 
    private javax.swing.JLabel labelStateResponse2; 
    private javax.swing.JLabel labelStateResponse3; 
    private javax.swing.JScrollPane scrollPaneMain; 
    private javax.swing.JScrollPane scrollPaneServer1; 
    private javax.swing.JScrollPane scrollPaneServer2; 
    private javax.swing.JScrollPane scrollPaneServer3; 
    private javax.swing.JScrollPane scrollPaneState1; 
    private javax.swing.JScrollPane scrollPaneState2; 
    private javax.swing.JScrollPane scrollPaneState3; 
    private javax.swing.JTextArea textAreaMain; 
    private javax.swing.JTextArea textAreaServer1; 
    private javax.swing.JTextArea textAreaServer2; 
    private javax.swing.JTextArea textAreaServer3; 
    private javax.swing.JTextArea textAreaState1; 
    private javax.swing.JTextArea textAreaState2; 
    private javax.swing.JTextArea textAreaState3; 
    // End of variables declaration 
} 

이 클래스는 여기에 호출되는 : 코드 많이입니다

ServerGUI bssGUI = new ServerGUI(); 
bssGUI.setServerGUI(this, 4242, object.length,object); 
bssGUI.setVisible(true); 
bssGUI.startServing(); 
+0

1) 좀 더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오 (추가 사용자 정의 클래스를 나타내는 코드 300 개가 아닌). 2) 이것은 EDT를 막는 효과와 같이 의심스럽게 들립니다. EDT (Event Dispatch Thread)를 차단하지 마십시오. GUI가 그럴 때 멈출 것입니다. 를 호출하는 대신'Thread.sleep (n)'은 작업 반복을위한 Swing 타이머를 구현하거나 장시간 실행되는 작업을위한 SwingWorker를 구현합니다. 자세한 내용은 [동시성 (Concurrency in Swing)] (http://docs.oracle.com/javase/tutorial/uiswing/concurrency/)을 참조하십시오. –

+0

자바 명명 규칙을 배우고 준수하십시오. – kleopatra

답변

0

그것을 드래그의 문제이기 때문에 내가 페이지를 재 설계 ...이 코드 넷빈즈 생성됩니다 볼 수 있듯이 및 드롭 기능을 복사 : 생성자에서 invokeLater을 제거하고 대신 initalization 포장하려고 오닐 적절한 장소에서 비즈니스 기능 .. 조심 어디서 u는 사업 장소 기능을 넣을 경우 becse 만약 당신이 잘못된 장소에 넣어 그럼 같은 문제가 다시이 끝날 수도 있습니다.

backButton.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      backButtonActionPerformed(evt); 
     } 
    }); 

주어진 아래 U는 다음 리스너 코드를 작성하는 경우, 예를 들면 .. 맞습니다. 여기서 주목할 좋은 점은 메소드에서 ur 코드를 끝내고 u를 호출 할 곳에서 해당 메소드를 호출한다는 것입니다.

그리고 u는 (는) jimmy에 게시 된 답변에 대해 신경을 쓸 수 있습니다. 나는이 코드를 통해 문제를 찾아내는 데 시간 낭비가 될 것이라고 생각한다. 드래그 앤 드롭의 문제.

또한 어떤 구성 요소도 겹치지 않아야하며 삭제 된 추가 구성 요소가 없어야하지만 메모리가 해제되지 않았 음을 명심하십시오.

1

, 넷빈즈를 사용하여 :) 내가 발견 할 수있는 유일한 일을 가진 단점 중 하나는 당신이 전화를하기 전에 initComponents();를 호출해야한다는 것입니다 또한

setVisible(true);, 작성중인 로그 파일을 읽어 당신이 당신의 예외 중 하나를 잡기되지 않도록 (또는 printlines 추가)

1

하나의 스레드에서 초기화를하고 있지만 다른 스레드에서 setVisible 메서드를 호출하는 것 같습니다 (생성자의 invokeLater에 래핑 됨). 이벤트 디스패처 스레드 이외의 스레드에서 UI 항목을 호출하여 결과 경쟁 조건을 전혀 언급하지 않는 것은 일반적으로 좋지 않은 접근 방식입니다.

java.awt.EventQueue.invokeLater(new Runnable() { 
    public void run() { 
     ServerGUI bssGUI = new ServerGUI(); 
     bssGUI.setServerGUI(this, 4242, object.length,object); 
     bssGUI.setVisible(true); 
     bssGUI.startServing(); 
    } 
}; 
관련 문제