import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;public class Client { JMenuBar mb;
JTextPane txtpane;
    JFrame f;
JPanel pane;
GridBagConstraints girdBagCon;
JCheckBox checkbox;
JTextField clientMessage;
JButton clientMessageButton;
JTextField showStatus;//显示用户连接状态
JScrollPane messageScrollPane;//信息显示的滚动条

JMenuItem loginItem ;
JMenuItem logoffItem ;
JMenuItem exitItem;
JMenuItem userItem;
JMenuItem openItem;
static JMenuItem connectItem;
JMenuItem helpItem;
JButton loginButton;//用户登录
JButton logoffButton;//用户注销
JButton userButton;//用户信息的设置
JButton connectButton;//连接设置
JButton exitButton;//退出按钮

public Client()
{
f=new JFrame("聊天室客户端");
Container contentPane = f.getContentPane();
contentPane.setLayout(new BorderLayout());
// Dimension faceSize = new Dimension(400, 600);
// f.setSize(faceSize);
f.setBounds(100,100,400,500);
    f.setResizable(false);
    txtpane = new JTextPane();
txtpane.setEditable(false);
//添加滚动条
messageScrollPane = new JScrollPane(txtpane,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
messageScrollPane.setPreferredSize(new Dimension(400,400));
messageScrollPane.revalidate();
// txtMain.setBounds(0, 0, 300, 200);

contentPane.add(txtpane,BorderLayout.CENTER);
mb=new JMenuBar();
     JMenu fileMenu=new JMenu("操作");
JMenu editMenu=new JMenu("设计");
JMenu helpMenu=new JMenu("帮助");
loginItem=new JMenuItem("用户登录",new ImageIcon("src/face/98.gif"));
exitItem=new JMenuItem("用户注销",new ImageIcon("src/face/64.gif"));
exitItem=new JMenuItem("退出",new ImageIcon("src/face/27.gif"));
openItem=new JMenuItem("用户设置",new ImageIcon("src/face/98.gif"));
connectItem=new JMenuItem("连接设置",new ImageIcon("src/face/98.gif"));
helpItem=new JMenuItem("帮助",new ImageIcon("src/face/99.gif"));
fileMenu.add(loginItem);
fileMenu.add(exitItem);
fileMenu.add(exitItem);
editMenu.add(openItem);
editMenu.add(connectItem);
        helpMenu.add(helpItem);
    mb.add(fileMenu);
    mb.add(editMenu);
    mb.add(helpMenu);
    exitItem.setEnabled(false);
    f.setJMenuBar(mb);
JToolBar toolBar = new JToolBar();

loginButton = new JButton("登录");
logoffButton = new JButton("注销");
userButton  = new JButton("用户设置" );
connectButton  = new JButton("连接设置" );
exitButton = new JButton("退出" );
toolBar.add(userButton);
toolBar.add(connectButton);
toolBar.addSeparator();
toolBar.add(loginButton);
toolBar.add(logoffButton);
toolBar.addSeparator();
toolBar.add(exitButton);
contentPane.add(toolBar,BorderLayout.NORTH);


pane=new JPanel();
GridBagLayout girdBag=new GridBagLayout();
pane.setLayout(girdBag);

contentPane.add(pane,BorderLayout.SOUTH);
JLabel express,sendToLabel,messageLabel ;
sendToLabel = new JLabel("发送至:");
express = new JLabel("         表情:   ");
messageLabel = new JLabel("发送消息:");
    JComboBox jc=new JComboBox();
    JComboBox jc1=new JComboBox();     
    jc.addItem("所有人");
jc1 = new JComboBox();
jc1.addItem("微笑地");
jc1.addItem("高兴地");
jc1.addItem("轻轻地");
jc1.addItem("生气地");
checkbox = new JCheckBox("悄悄话");
checkbox.setSelected(false);
clientMessage = new JTextField(23);
clientMessage.setEnabled(false);
clientMessageButton = new JButton();
clientMessageButton.setText("发送");

loginButton.setEnabled(true);
logoffButton.setEnabled(false);
girdBagCon = new GridBagConstraints();
girdBagCon.gridx = 0;
girdBagCon.gridy = 0;
girdBagCon.gridwidth = 5;
girdBagCon.gridheight = 2;
girdBagCon.ipadx = 5;
girdBagCon.ipady = 5;
JLabel none = new JLabel("    ");
girdBag.setConstraints(none,girdBagCon);
pane.add(none); girdBagCon = new GridBagConstraints();
girdBagCon.gridx =0;
girdBagCon.gridy =2;
girdBagCon.insets = new Insets(1,0,0,0);
girdBagCon.anchor = GridBagConstraints.LINE_START;
girdBag.setConstraints(sendToLabel,girdBagCon);
pane.add(sendToLabel); girdBagCon = new GridBagConstraints();
girdBagCon.gridx =1;
girdBagCon.gridy =2;
girdBagCon.anchor = GridBagConstraints.LINE_START;
girdBag.setConstraints(jc,girdBagCon);
pane.add(jc);

girdBagCon = new GridBagConstraints();
girdBagCon.gridx =2;
girdBagCon.gridy = 2;
girdBagCon.anchor = GridBagConstraints.LINE_START;
girdBag.setConstraints(express,girdBagCon);
pane.add(express);

girdBagCon = new GridBagConstraints();
girdBagCon.gridx =3;
girdBagCon.gridy =2;
girdBagCon.anchor = GridBagConstraints.LINE_START;
girdBag.setConstraints(jc1,girdBagCon);
pane.add(jc1);

girdBagCon = new GridBagConstraints();
girdBagCon.gridx =0;
girdBagCon.gridy =3;
girdBagCon.anchor = GridBagConstraints.LINE_START;
girdBag.setConstraints(messageLabel,girdBagCon);
pane.add(messageLabel);

girdBagCon = new GridBagConstraints();
girdBagCon.gridx =4;
girdBagCon.gridy =2;
girdBagCon.anchor = GridBagConstraints.LINE_START;
girdBag.setConstraints(checkbox,girdBagCon);
pane.add(checkbox);

girdBagCon = new GridBagConstraints();
girdBagCon.gridx = 1;
girdBagCon.gridy = 3;
girdBagCon.gridwidth = 3;
girdBagCon.gridheight = 1;
girdBag.setConstraints(clientMessage,girdBagCon);
pane.add(clientMessage);

girdBagCon = new GridBagConstraints();
girdBagCon.gridx =4;
girdBagCon.gridy =3;
girdBagCon.anchor = GridBagConstraints.LINE_START;
girdBag.setConstraints(clientMessageButton,girdBagCon);
pane.add(clientMessageButton);



//为菜单栏添加事件监听
loginItem.addActionListener(new a());
logoffItem.addActionListener(new a());
exitItem.addActionListener(new a());
userItem.addActionListener(new a());
connectItem.addActionListener(new a());
helpItem.addActionListener(new a()); //添加按钮的事件侦听
loginButton.addActionListener(new a());
logoffButton.addActionListener(new a());
userButton.addActionListener(new a());
connectButton.addActionListener(new a());
exitButton.addActionListener(new a());



    f.setVisible(true);    
}
///////////////////上边为主窗体设计代码,现在进入小窗体和事件
JDialog userDialog =new JDialog(f,"用户设置",true);
JLabel jl=new JLabel("请输入用户名");
JButton jbOK=new JButton("确定");
JButton jbClient=new JButton("取消");
JTextField Jtxt=new JTextField();
// userDialog.add(jl);
class a implements ActionListener {
public void actionPerformed(ActionEvent e){
Object obj = e.getSource();
if(obj==loginItem ||obj==loginButton)
{
userDialog.setVisible(true);
}
}
}
public static void main(String[] args) {
new Client(); }}

解决方案 »

  1.   

    补充一下  问题应处在///////////////////上边为主窗体设计代码,现在进入小窗体和事件
     JDialog userDialog =new JDialog(f,"用户设置",true);
     JLabel jl=new JLabel("请输入用户名");
     JButton jbOK=new JButton("确定"); 
    JButton jbClient=new JButton("取消"); 
    JTextField Jtxt=new JTextField();
    // userDialog.add(jl);
     class a implements ActionListener {
     public void actionPerformed(ActionEvent e){
     Object obj = e.getSource();
     if(obj==loginItem ||obj==loginButton)
     {
     userDialog.setVisible(true);
     }
     }
     }写着之前都好好的
      

  2.   

    //为菜单栏添加事件监听
    loginItem.addActionListener(new a());
    logoffItem.addActionListener(new a());
    exitItem.addActionListener(new a());
    userItem.addActionListener(new a());
    connectItem.addActionListener(new a());
    helpItem.addActionListener(new a());这2个东西没有new出来啊,还为空
      

  3.   

    logoffItem.addActionListener(new a());
    userItem.addActionListener(new a());