高手,您好:
    我写了一个“CS聊天工具”的登陆界面,源代码如下:
    package c_port_packageDoctor;
 
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;public class C_port_registerfuct extends JFrame implements ActionListener, ItemListener{
/**
 * 
 */
private static final long serialVersionUID = 1L;
static Socket s1 = null;
boolean judgeUsername = false;
boolean judgeMySucceed = false;
String MyUID = null;
String MyPWD = null;
String MyFicia = null;
String MyMobilePhone = null;
String MyPhysicalPlace = "BeiJing";
String MyQuestion = null;
String MyAnswer = null;
String MyAnswertoDport = null;
int MySysNum = -1;
JLabel jL18 = new JLabel("千里马网络答疑系统注册界面");
JLabel jL28 = new JLabel("");
JLabel jL0 = new JLabel("用户名:");
JLabel jL1 = new JLabel("密码:");
JLabel jL2 = new JLabel("确认密码:");
JLabel jL3 = new JLabel("品牌头匾注册:"); 
JLabel jL4V = new JLabel("验证问答输入:");
JLabel jL6 = new JLabel("报名学校全称:");
JLabel jL5 = new JLabel("教师注册手机:");
public static JLabel jL8 = new JLabel("");
JPanel jp = new JPanel();
JButton jb0 = new JButton("提交");
JButton jb1 = new JButton("检查用户名可用性");
JTextField jtf0 = new JTextField();
JTextField jtf1 = new JTextField();
JTextField jtf2 = new JTextField();
JTextField jtf3 = new JTextField();
JTextField jtf4 = new JTextField();
JPasswordField jpwf1 = new JPasswordField();
JPasswordField jpwf2 = new JPasswordField();
DataOutputStream dops = null;
DataInputStream dips = null;
String[] s = {"北京市","宁夏回族自治区","天津市","上海市","重庆市","河北省","云南省","辽宁省","黑龙江省","湖南省","安徽省","山东省","新疆维吾尔自治区","江苏省","浙江省","江西省","湖北省","广西壮族自治区","甘肃省","山西省","内蒙古","陕西省","吉林省","福建省","贵州省","广东省","青海省","西藏","四川省","海南省","台湾省","香港特别行政区","澳门特别行政区"};
    JComboBox combo1=new JComboBox(s);
    String UserProvice = null;
    
C_port_registerfuct(Socket s){ try {
s1 = new Socket("127.0.0.1",9999);
} catch (UnknownHostException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
     Socket so1 = s;
this.setTitle("用户名中,不可含有“##”“$”以及“·”和“%%”符号,如果注册户名含有本人身份证全码,可享受本系统的合作纠纷的法律责任的赔偿!!若无,只享受经济赔偿!!");
this.setBounds(new Rectangle(400,230,613,400));
jp.setLayout(null);
jL0.setBounds(new Rectangle(28,37,100,25));
jL1.setBounds(new Rectangle(28,68,100,25));
jL2.setBounds(new Rectangle(28,96,100,25));
jL3.setBounds(new Rectangle(28,127,100,25));
jL5.setBounds(new Rectangle(28,158,288,25));
jL4V.setBounds(new Rectangle(28,189,100,25));
jL6.setBounds(new Rectangle(28,216,100,25));
jL8.setBounds(new Rectangle(28,280,590,25));
jL18.setBounds(new Rectangle(158,8,270,25));
jtf0.setBounds(new Rectangle(150,37,270,25));
jpwf1.setBounds(new Rectangle(150,66,270,25));
jpwf2.setBounds(new Rectangle(150,95,270,25));
jtf1.setBounds(new Rectangle(150,127,270,25));
jtf2.setBounds(new Rectangle(150,158,270,25));
jtf3.setBounds(new Rectangle(150,189,270,25));
jtf4.setBounds(new Rectangle(150,220,270,25));
jL28.setBounds(new Rectangle(460,37,121,28));
jb0.setBounds(new Rectangle(50,248,73,32));
jb1.setBounds(new Rectangle(251,248,200,32));
combo1.setBounds(new Rectangle(33,330,270,25)); 
jL28.setBounds(new Rectangle(440,37,33,150));
long time2=System.currentTimeMillis();
String midvariable = String.valueOf(time2);
MySysNum = Integer.parseInt(midvariable.substring(12,13));
combo1.setBorder(BorderFactory.createTitledBorder("请选择您所在的省份或自治区,直辖市"));
switch(MySysNum){
case 0:
{
MyQuestion = "验证问答:本系统是面向什么行业的?(提示:面向“教育”行业)";
MyAnswer = "教育";
jL8.setText(MyQuestion);
break;
}
case 1:
{
MyQuestion = "验证问答:您所购买的本系统运营商的官方域名是什么?(提示:官方域名:“http://www.xdf.cn/”)";
MyAnswer = "www.cjcobuptcjcoChinaco.com";
jL8.setText(MyQuestion);
break;
}
case 2:
{
MyQuestion = "验证问答:本系统的优势是什么?(提示:“价格低廉并且节省时间”)";
MyAnswer = "价格低廉并且节省时间";
jL8.setText(MyQuestion);
break;
}
case 3:
{
MyQuestion = "验证问答:本系统的开发者是毕业于哪所大学?(提示:“北京邮电大学”)";
MyAnswer = "北京邮电大学";
jL8.setText(MyQuestion);
break;
}
case 4:
{
MyQuestion = "验证问答:本系统的开发者导师是谁?(提示:“漆涛”)";
MyAnswer = "漆涛";
jL8.setText(MyQuestion);
break;
}
case 5:
{
MyQuestion = "验证问答:本系统的开发者在北邮的哪所学院完成的学习?(提示:“软件学院宏福校区”)";
MyAnswer = "软件学院宏福校区";
jL8.setText(MyQuestion);
break;
}
case 6:
{
MyQuestion = "验证问答:本系统的开发商网址首页地址是什么?(提示:“www.cjcobuptcjcoChinaco.com”";
MyAnswer = "www.cjcobuptcjcoChinaco.com";
jL8.setText(MyQuestion);
break;
}
case 7:
{
MyQuestion = "验证问答:本世纪最伟大的专业是什么?(提示:“软件工程”)";
MyAnswer = "软件工程";
jL8.setText(MyQuestion);
break;
}
case 8:
{
MyQuestion = "验证问答:中国最好的大学是什么?(提示:“北京邮电大学”)";
MyAnswer = "北京邮电大学";
jL8.setText(MyQuestion);
break;
}
case 9:
{
MyQuestion = "验证问答:北京邮电大学比清华大学强在哪?(提示:“开放,综合培养,专业,民主,责任意识”";
MyAnswer = "开放,综合培养,专业,民主,责任意识";
jL8.setText(MyQuestion);
break;
}
}
jp.add(combo1);
jp.add(jL28);
jp.add(jL0);
jp.add(jL1);
jp.add(jL2);
jp.add(jL3);
jp.add(jL5);
jp.add(jL4V);
jp.add(jL8);
jp.add(jL18);
jp.add(jtf0);
jp.add(jtf1);
jp.add(jtf2);
jp.add(jtf3);
jp.add(jpwf1);
jp.add(jpwf2);
jp.add(jpwf1);
jp.add(jpwf2);
jp.add(jb0);
jp.add(jb1);
jp.add(jL6);
jp.add(jtf4);
this.add(jp);
this.setVisible(true);
jL28.setText("<html>本“千里马<br>”网络教育系统,需要您注册的用户名中,不含“$”和“#”,以及“`”和“%”字符,如果出现了上面的字符的话,本系统将会把您的用户注册申请退回,请知悉!!</html>");
        jb0.addActionListener(this);
jb1.addActionListener(this);
combo1.addItemListener(this);
try {
dops = new DataOutputStream(so1.getOutputStream());
dips = new DataInputStream(so1.getInputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==jb0){
MyUID = jtf0.getText();
MyPWD =new String(jpwf1.getPassword());
MyFicia = jtf1.getText();
MyMobilePhone = jtf2.getText();
MyAnswertoDport = jtf3.getText();
String MyPWDConfirm = new String(jpwf1.getPassword());
if(!MyPWD.equals(MyPWDConfirm)){
jL8.setText("您两次输入的密码不一致,请重新输入");
}else if(containsAny(MyUID,"$")||containsAny(MyUID,"#")||containsAny(MyUID,"%")||containsAny(MyUID,"`")){
jL8.setText("您输入的用户名中,含有系统无法处理的符号“$”“#”“`”或者“%”,请您重新输入您的“合法用户名”"); 
}
else{
try {
dops.writeUTF("5##0##"+"doctor"+"%%"+MyUID+"%%"+MyPWD+"%%"+MyFicia+"%%"+MyMobilePhone+"%%"+MyPhysicalPlace+"%%"+MyAnswer+"%%"+MyAnswertoDport+"##"+"Mem");
judgeMySucceed = dips.readBoolean();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if(judgeMySucceed==true){
jL8.setText("恭喜!!您的账户已经激活!!您可以登陆平台,享受系统的远程教育所带来的价值了!!");
}else{
jL8.setText("对不起!!您的账户可能存在系统中的同名用户,请您修改您的用户名,再重新提交您的账户信息!!");
}
}
}if(e.getSource()==jb1){
try {
dops.writeUTF("5##1"+"%%"+MyUID);
judgeUsername = dips.readBoolean();
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
if(judgeUsername==false){
jL8.setText("对不起!!您的用户名已有用户注册,请您改正用户名后重新提交您的注册信息.");
jpwf1.setText("");
jpwf2.setText("");     jtf0.setText("");
} }if(judgeUsername==true){
jL8.setText("恭喜!!您的账户已经注册成功!!请您即刻享受系统的教育服务吧!!");
}
} @Override 
public void itemStateChanged(ItemEvent e) 
{
if(e.getStateChange() == ItemEvent.SELECTED) 
{  
UserProvice=(String)combo1.getSelectedItem(); 

}

boolean containsAny(String str, String searchChars)
 {
  if(str.length()!=str.replace(searchChars,"").length())
  {
    return true;
  }
  return false;
}  public static void main(String[] args){
new C_port_registerfuct(s1);
}

}    得到的输出效果如下:
    
    请问高手,我上面的代码,为什么会有:“输出的效果在jL28标签上的文字为不完整的一竖行”的效果...?
    请问高手,原因是什么?
    怎么修改能够将图中的红色方框的位置处,用jL28标签中所含有的文字,占满...?
    希望得到高手的相助!!
    一百分奉上!!
                                                                一位日日夜夜向着理想奔跑的筑梦者
                                                               2013年10月3日星期四早晨2点26分swingJava调试Html登录窗口

解决方案 »

  1.   

    贴出的代码不完整,这是我加上的一份“N+1”版..
        package c_port_packageDoctor;
     
    import java.awt.Rectangle;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.net.Socket;
    import java.net.UnknownHostException;import javax.swing.BorderFactory;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;public class C_port_registerfuct extends JFrame implements ActionListener, ItemListener{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    static Socket s1 = null;
    boolean judgeUsername = false;
    boolean judgeMySucceed = false;
    String MyUID = null;
    String MyPWD = null;
    String MyFicia = null;
    String MyMobilePhone = null;
    String MyPhysicalPlace = "BeiJing";
    String MyQuestion = null;
    String MyAnswer = null;
    String MyAnswertoDport = null;
    int MySysNum = -1;
    JLabel jL18 = new JLabel("千里马网络答疑系统注册界面");
    JLabel jL28 = new JLabel("");
    JLabel jL0 = new JLabel("用户名:");
    JLabel jL1 = new JLabel("密码:");
    JLabel jL2 = new JLabel("确认密码:");
    JLabel jL3 = new JLabel("品牌头匾注册:"); 
    JLabel jL4V = new JLabel("验证问答输入:");
    JLabel jL6 = new JLabel("报名学校全称:");
    JLabel jL5 = new JLabel("教师注册手机:");
    public static JLabel jL8 = new JLabel("");
    JPanel jp = new JPanel();
    JButton jb0 = new JButton("提交");
    JButton jb1 = new JButton("检查用户名可用性");
    JTextField jtf0 = new JTextField();
    JTextField jtf1 = new JTextField();
    JTextField jtf2 = new JTextField();
    JTextField jtf3 = new JTextField();
    JTextField jtf4 = new JTextField();
    JPasswordField jpwf1 = new JPasswordField();
    JPasswordField jpwf2 = new JPasswordField();
    DataOutputStream dops = null;
    DataInputStream dips = null;
    String[] s = {"北京市","宁夏回族自治区","天津市","上海市","重庆市","河北省","云南省","辽宁省","黑龙江省","湖南省","安徽省","山东省","新疆维吾尔自治区","江苏省","浙江省","江西省","湖北省","广西壮族自治区","甘肃省","山西省","内蒙古","陕西省","吉林省","福建省","贵州省","广东省","青海省","西藏","四川省","海南省","台湾省","香港特别行政区","澳门特别行政区"};
        JComboBox combo1=new JComboBox(s);
        String UserProvice = null;
        
    C_port_registerfuct(Socket s){ try {
    s1 = new Socket("127.0.0.1",9999);
    } catch (UnknownHostException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
         Socket so1 = s;
    this.setTitle("用户名中,不可含有“##”“$”以及“·”和“%%”符号,如果注册户名含有本人身份证全码,可享受本系统的合作纠纷的法律责任的赔偿!!若无,只享受经济赔偿!!");
    this.setBounds(new Rectangle(400,230,613,400));
    jp.setLayout(null);
    jL0.setBounds(new Rectangle(28,37,100,25));
    jL1.setBounds(new Rectangle(28,68,100,25));
    jL2.setBounds(new Rectangle(28,96,100,25));
    jL3.setBounds(new Rectangle(28,127,100,25));
    jL5.setBounds(new Rectangle(28,158,288,25));
    jL4V.setBounds(new Rectangle(28,189,100,25));
    jL6.setBounds(new Rectangle(28,216,100,25));
    jL8.setBounds(new Rectangle(28,280,590,25));
    jL18.setBounds(new Rectangle(158,8,270,25));
    jtf0.setBounds(new Rectangle(150,37,270,25));
    jpwf1.setBounds(new Rectangle(150,66,270,25));
    jpwf2.setBounds(new Rectangle(150,95,270,25));
    jtf1.setBounds(new Rectangle(150,127,270,25));
    jtf2.setBounds(new Rectangle(150,158,270,25));
    jtf3.setBounds(new Rectangle(150,189,270,25));
    jtf4.setBounds(new Rectangle(150,220,270,25));
    jL28.setBounds(new Rectangle(460,37,121,28));
    jb0.setBounds(new Rectangle(50,248,73,32));
    jb1.setBounds(new Rectangle(251,248,200,32));
    combo1.setBounds(new Rectangle(33,330,270,25)); 
    jL28.setBounds(new Rectangle(440,37,33,150));
    long time2=System.currentTimeMillis();
    String midvariable = String.valueOf(time2);
    MySysNum = Integer.parseInt(midvariable.substring(12,13));
    combo1.setBorder(BorderFactory.createTitledBorder("请选择您所在的省份或自治区,直辖市"));
    switch(MySysNum){
    case 0:
    {
    MyQuestion = "验证问答:本系统是面向什么行业的?(提示:面向“教育”行业)";
    MyAnswer = "教育";
    jL8.setText(MyQuestion);
    break;
    }
    case 1:
    {
    MyQuestion = "验证问答:您所购买的本系统运营商的官方域名是什么?(提示:官方域名:“http://www.xdf.cn/”)";
    MyAnswer = "www.cjcobuptcjcoChinaco.com";
    jL8.setText(MyQuestion);
    break;
    }
    case 2:
    {
    MyQuestion = "验证问答:本系统的优势是什么?(提示:“价格低廉并且节省时间”)";
    MyAnswer = "价格低廉并且节省时间";
    jL8.setText(MyQuestion);
    break;
    }
    case 3:
    {
    MyQuestion = "验证问答:本系统的开发者是毕业于哪所大学?(提示:“北京邮电大学”)";
    MyAnswer = "北京邮电大学";
    jL8.setText(MyQuestion);
    break;
    }
    case 4:
    {
    MyQuestion = "验证问答:本系统的开发者导师是谁?(提示:“漆涛”)";
    MyAnswer = "漆涛";
    jL8.setText(MyQuestion);
    break;
    }
    case 5:
    {
    MyQuestion = "验证问答:本系统的开发者在北邮的哪所学院完成的学习?(提示:“软件学院宏福校区”)";
    MyAnswer = "软件学院宏福校区";
    jL8.setText(MyQuestion);
    break;
    }
    case 6:
    {
    MyQuestion = "验证问答:本系统的开发商网址首页地址是什么?(提示:“www.cjcobuptcjcoChinaco.com”";
    MyAnswer = "www.cjcobuptcjcoChinaco.com";
    jL8.setText(MyQuestion);
    break;
    }
    case 7:
    {
    MyQuestion = "验证问答:本世纪最伟大的专业是什么?(提示:“软件工程”)";
    MyAnswer = "软件工程";
    jL8.setText(MyQuestion);
    break;
    }
    case 8:
    {
    MyQuestion = "验证问答:中国最好的大学是什么?(提示:“北京邮电大学”)";
    MyAnswer = "北京邮电大学";
    jL8.setText(MyQuestion);
    break;
    }
    case 9:
    {
    MyQuestion = "验证问答:北京邮电大学比清华大学强在哪?(提示:“开放,综合培养,专业,民主,责任意识”";
    MyAnswer = "开放,综合培养,专业,民主,责任意识";
    jL8.setText(MyQuestion);
    break;
    }
    }
    jp.add(combo1);
    jp.add(jL28);
    jp.add(jL0);
    jp.add(jL1);
    jp.add(jL2);
    jp.add(jL3);
    jp.add(jL5);
    jp.add(jL4V);
    jp.add(jL8);
    jp.add(jL18);
    jp.add(jtf0);
    jp.add(jtf1);
    jp.add(jtf2);
    jp.add(jtf3);
    jp.add(jpwf1);
    jp.add(jpwf2);
    jp.add(jpwf1);
    jp.add(jpwf2);
    jp.add(jb0);
    jp.add(jb1);
    jp.add(jL6);
    jp.add(jtf4);
    this.add(jp);
    this.setVisible(true);
    jL28.setText("<html>本“千里马<br>”网络教育系统,需要您注册的用户名中,不含“$”和“#”,以及“`”和“%”字符,如果出现了上面的字符的话,本系统将会把您的用户注册申请退回,请知悉!!</html>");
            jb0.addActionListener(this);
    jb1.addActionListener(this);
    combo1.addItemListener(this);
    try {
    dops = new DataOutputStream(so1.getOutputStream());
    dips = new DataInputStream(so1.getInputStream());
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(e.getSource()==jb0){
    MyUID = jtf0.getText();
    MyPWD =new String(jpwf1.getPassword());
    MyFicia = jtf1.getText();
    MyMobilePhone = jtf2.getText();
    MyAnswertoDport = jtf3.getText();
    String MyPWDConfirm = new String(jpwf1.getPassword());
    if(!MyPWD.equals(MyPWDConfirm)){
    jL8.setText("您两次输入的密码不一致,请重新输入");
    }else if(containsAny(MyUID,"$")||containsAny(MyUID,"#")||containsAny(MyUID,"%")||containsAny(MyUID,"`")){
    jL8.setText("您输入的用户名中,含有系统无法处理的符号“$”“#”“`”或者“%”,请您重新输入您的“合法用户名”"); 
    }
    else{
    try {
    dops.writeUTF("5##0##"+"doctor"+"%%"+MyUID+"%%"+MyPWD+"%%"+MyFicia+"%%"+MyMobilePhone+"%%"+MyPhysicalPlace+"%%"+MyAnswer+"%%"+MyAnswertoDport+"##"+"Mem");
    judgeMySucceed = dips.readBoolean();
    } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
    if(judgeMySucceed==true){
    jL8.setText("恭喜!!您的账户已经激活!!您可以登陆平台,享受系统的远程教育所带来的价值了!!");
    }else{
    jL8.setText("对不起!!您的账户可能存在系统中的同名用户,请您修改您的用户名,再重新提交您的账户信息!!");
    }
    }
    }if(e.getSource()==jb1){
    try {
    dops.writeUTF("5##1"+"%%"+MyUID);
    judgeUsername = dips.readBoolean();
    } catch (IOException e2) {
    // TODO Auto-generated catch block
    e2.printStackTrace();
    }
    if(judgeUsername==false){
    jL8.setText("对不起!!您的用户名已有用户注册,请您改正用户名后重新提交您的注册信息.");
    jpwf1.setText("");
    jpwf2.setText("");     jtf0.setText("");
    } }if(judgeUsername==true){
    jL8.setText("恭喜!!您的账户已经注册成功!!请您即刻享受系统的教育服务吧!!");
    }
    } @Override 
    public void itemStateChanged(ItemEvent e) 
    {
    if(e.getStateChange() == ItemEvent.SELECTED) 
    {  
    UserProvice=(String)combo1.getSelectedItem(); 

    }

    boolean containsAny(String str, String searchChars)
     {
      if(str.length()!=str.replace(searchChars,"").length())
      {
        return true;
      }
      return false;
    }  public static void main(String[] args){
    new C_port_registerfuct(s1);
    }

    }
      

  2.   

    jL28.setBounds(new Rectangle(440,37,33,150));
    33改的大一些,就看到变化了