2012-01-12 119 views
0

喜的朋友,我在的Java Swing创建一个网吧同治软件,我想从server.i退出客户机上的Java软件(在摆动欢迎窗口)的Java Swing有这样的代码BT它不是working.when客户端运行的程序窗口摆不visible.i我能够从服务器关闭它,但我想要的是当客户端编译,当我从服务器大火收命令运行的代码,收盘有可能客户端

秋千窗口应该是可见的
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 2012-01-12 07:13:44

回答

2

问题是,您从不在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 ..它的工作。 – 2012-01-13 02:47:44

1

可能不是一个回答您的问题,请

1)不使用生成的代码从NetBeans中,使用Standard Swing JComponents

2)寻找正确LayoutManager,因为很难管理由GroupLayout

3)重定向Socket到后台任务生成的代码串,使用SwingWorker,Runnable#Thread,否则GUI将冻结,直到长时间持续结束

+0

(坏笑)..但我看你是充满可能的。没关系。 ;) – 2012-01-12 09:15:30