2012-01-12 14 views
0

こんにちは私は、server.iからクライアントマシン上のjavaソフトウェア(スウィングのウェルカムウィンドウ)を終了するJavaスイングでサイバーカフェマネジメントソフトウェアを作成しています。このコードは動作していません.whenクライアントはプログラムのスイングウィンドウを表示していませんvisible.iはサーバーから閉じることができますが、私が望むのはスイングウィンドウがクライアントがコンパイルしてコードを実行し、サーバーから閉じるコマンドを実行したときに表示されるはずですクライアント用Javaスイング

おそらく
import java.net.*; 
import java.io.*; 

public class cl extends javax.swing.JFrame { 

    /** Creates new form cl */ 
    public cl() { 


    initComponents(); 
} 

/** 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() { 

    jPanel1 = new javax.swing.JPanel(); 
    jLabel5 = new javax.swing.JLabel(); 
    jLabel1 = new javax.swing.JLabel(); 
    jLabel2 = new javax.swing.JLabel(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
    setBackground(new java.awt.Color(255, 204, 204)); 

    jPanel1.setBackground(new java.awt.Color(255, 204, 204)); 

    jLabel5.setIcon(new javax.swing.ImageIcon("C:\\Users\\Administrator\\Desktop\\new-1.jpg")); // NOI18N 

    jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N 
    jLabel1.setText("Welcome to our cafe"); 

    jLabel2.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N 
    jLabel2.setText("Contact Administrator to start your session"); 

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); 
    jPanel1.setLayout(jPanel1Layout); 
    jPanel1Layout.setHorizontalGroup(
     jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel1Layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jLabel5) 
      .addGroup(jPanel1Layout.createParallelGroup 
    (javax.swing.GroupLayout.Alignment.LEADING) 
       .addGroup(jPanel1Layout.createSequentialGroup() 
        .addGap(92, 92, 92) 
        .addComponent(jLabel1)) 
       .addGroup(jPanel1Layout.createSequentialGroup() 
        .addGap(42, 42, 42) 
        .addComponent(jLabel2))) 
      .addContainerGap(872, Short.MAX_VALUE)) 
    ); 
    jPanel1Layout.setVerticalGroup(
     jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel1Layout.createSequentialGroup() 
      .addGroup(jPanel1Layout.createParallelGroup 
(javax.swing.GroupLayout.Alignment.LEADING) 
       .addGroup(jPanel1Layout.createSequentialGroup() 
        .addContainerGap() 
        .addComponent(jLabel5)) 
       .addGroup(jPanel1Layout.createSequentialGroup() 
        .addGap(32, 32, 32) 
        .addComponent(jLabel1) 
        .addGap(18, 18, 18) 
        .addComponent(jLabel2))) 
      .addContainerGap(597, Short.MAX_VALUE)) 
    ); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 
     javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 
     javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)  


    ); 

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

/** 
* @param args the command line arguments 
*/ 
public static void main(String args[]) { 


try 
    { 

    String s1,s2; 
    Socket s=new Socket("192.168.1.2",1024); 
        DataInputStream dis=new DataInputStream(s.getInputStream()); 
    DataOutputStream dos=new DataOutputStream(s.getOutputStream()); 
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 

    while(true) 
    { 



s1=dis.readUTF(); 

if (s1.equals("5")) 
{ 
System.exit(0); 
} 
    } 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
} 
// Variables declaration - do not modify 
private javax.swing.JLabel jLabel1; 
private javax.swing.JLabel jLabel2; 
private javax.swing.JLabel jLabel5; 
private javax.swing.JPanel jPanel1; 
// End of variables declaration 

}

+2

Javaの命名規則を学んで、 – kleopatra

答えて

2

問題は、main()メソッドでフレームを作成しないことです。

は、あなたのmainメソッドにこのコードを追加します。

public static void main(String args[]) { 
    cl frame = new cl(); 
    cl.setSize(640,480); 
    cl.setVisible(true); 
    // rest of code follows... 

そして、フレームが表示されます。また、あなたは、ユーザーがフレームを閉じることができるようにしたいかどうかを検討したい、とJFrame.setDefaultCloseOperation(int)

かもしれません

また、私はあなたではなく、独自のプロトコルよりもjava RMIを使用することを検討してお勧めします。 RMIは手作業によるコーディングネットワークを必要とせずに、より多くのパワー/機能を提供するかもしれません。 RMIは、別のスレッドでリスニングを実行する必要がないことを意味します.RMIがそれを処理します。

+0

ありがとう@craigmj ..それは働いた。 –

1

ないあなたの質問への回答をお願いし

バックグラウンド・タスクに GroupLayout

3)リダイレクトSocketによって生成されたコードの束を管理するのは難しいので

1)は、NetBeansのから生成されたコードを使用して、正しいLayoutManager探し)Standard Swing JComponents

2使用しませんSwingWorker,Runnable#Threadを使用してください。それ以外の場合は、最後に終了するまでGUIがフリーズします。

+0

(笑)。でも、あなたはおそらくそれでいっぱいです。気にしないで。 ;) –

関連する問題