不能显示主窗口上的控件

colorful3000 2003-09-13 02:57:29
哪位大虾帮帮忙,我的应用程序运行完全正确,但是在刚开始运行时,只出现主窗口的轮廓,上面的所有控件均没有显示出来,一旦经鼠标拖放改变大小后,窗口上的所有控件均显示出来,且估计不是窗口大小设置问题
...全文
122 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
colorful3000 2003-09-14
  • 打赏
  • 举报
回复
非常感谢各位高手的帮忙,按照大家的提示我已经把问题解决了,再次向所有帮助过我的人表示万分的感谢
maomaoxiong 2003-09-14
  • 打赏
  • 举报
回复
大家能不能讲一下原因呀
hui3zhihui 2003-09-14
  • 打赏
  • 举报
回复
setVisible(true);
setSize(450,200);
把这两行换一下位置就可以了
也就是
setSize(450,200);
setVisible(true);
sun2927 2003-09-14
  • 打赏
  • 举报
回复
你的程序我亲自试过,你进行下面的更改就可以了
把setVisible(true);去掉
在setsize(450.200)后面加上show();
cwell 2003-09-13
  • 打赏
  • 举报
回复
在setSize(450,200);后面加一句this.show()就可以了。
colorful3000 2003-09-13
  • 打赏
  • 举报
回复
此为聊天室程序的一个登录界面,其它程序还包括服务器程序,注册界面,聊天室界面,所有的程序均能运行正常,但界面程序都存在上面提到的问题,这里仅贴出较短的登录界面的程序,还请大家帮忙看看

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

import javax.swing.*;
import javax.swing.Timer;

// CustomerLogin Class
public class ChatLogin extends JFrame implements ActionListener
{
//declare componets
JLabel lblUserName;
JLabel lblUserPassword;

JTextField txtUserName;

JPasswordField txtUserPassword;

JButton btnLogin;
JButton btnRegister;
JButton btnCancel;

String strUserName;
String strUserPassword;
char[] arrayUserPassword;

Socket socketToServer;
ObjectInputStream streamFromServer;
PrintStream streamToServer;

//构造函数
public ChatLogin()
{
//窗口标题
this.setTitle("登录");
JPanel panel=new JPanel();

panel.setLayout(new GridBagLayout());
GridBagConstraints gbCons=new GridBagConstraints();

//添加控件
//用户名
gbCons.gridx=0;
gbCons.gridy=0;
lblUserName=new JLabel("用户姓名");
panel.add(lblUserName,gbCons);

gbCons.gridx=1;
gbCons.gridy=0;
txtUserName=new JTextField(20);
panel.add(txtUserName,gbCons);

//用户密码
gbCons.gridx=0;
gbCons.gridy=1;
lblUserPassword=new JLabel("用户密码");
panel.add(lblUserPassword,gbCons);

gbCons.gridx=1;
gbCons.gridy=1;
txtUserPassword=new JPasswordField(20);
panel.add(txtUserPassword,gbCons);

//功能按钮

JPanel btnPanel=new JPanel();
//登录按钮
btnLogin=new JButton("登录");
btnPanel.add(btnLogin);
btnLogin.addActionListener(this);

//注册按钮
btnRegister=new JButton("注册");
btnPanel.add(btnRegister);
btnRegister.addActionListener(this);

//取消按钮
btnCancel=new JButton("取消");
btnPanel.add(btnCancel);
btnCancel.addActionListener(this);

//将所有按钮作为一个控件添加
gbCons.gridx=1;
gbCons.gridy=3;
gbCons.anchor=GridBagConstraints.EAST;
panel.add(btnPanel,gbCons);

getContentPane().add(panel);
setVisible(true);
setSize(450,200);

setDefaultCloseOperation(EXIT_ON_CLOSE);
}//结束构造函数

//显示窗口
void showDlg()
{
JOptionPane.showMessageDialog(this,"Invalid Password or Login name","Message",
JOptionPane.ERROR_MESSAGE);
}


//按钮事件处理程序
public void actionPerformed(ActionEvent e1)
{
//取得鼠标点击对象资源
JButton btn1=(JButton)e1.getSource();

//点击取消
if(btn1.equals(btnCancel))
{
this.dispose();
}

else if(btn1.equals(btnRegister))
{
//点击注册
new ChatRegister();
this.dispose();
}
//点击登录
else
{
try
{
//创建套接字和输入输出流
socketToServer=new Socket("colorful",1001);
streamFromServer=new ObjectInputStream(socketToServer.getInputStream());
streamToServer=new PrintStream(socketToServer.getOutputStream());

//向服务器发出通知信息
streamToServer.println("LoginInfo");
strUserName=txtUserName.getText();
arrayUserPassword=txtUserPassword.getPassword();
strUserPassword=new String(arrayUserPassword);

// 向服务器提交登录信息
streamToServer.println(strUserName+":"+strUserPassword);

//从服务器读取信息

String strFromServer=(String)streamFromServer.readObject();

if(strFromServer.equals("Welcome"))
{
//如通过服务器验证,则转到聊天室界面
new ChatRoom(strUserName);
this.dispose();
}
else
{
//如没通过验证,则出错
showDlg();
}
}
catch(Exception e)
{
//发生异常
System.out.println("Exception Occurred:"+e);
}
}//end of if..else
}//end of actionPerformed

//主函数
public static void main(String args[])
{
new ChatLogin();
}
}//end of class ChatLogin

mq612 2003-09-13
  • 打赏
  • 举报
回复
把代码贴出来看看。
colorful3000 2003-09-13
  • 打赏
  • 举报
回复
具体怎么解决?我是新手,请大发慈悲,说的再详细点,不胜感激
YuLimin 2003-09-13
  • 打赏
  • 举报
回复
paint()的问题?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧