📄 udpchatframe.java
字号:
jMenuChangeLAF.add(jRadioButtonMenuItemOffice2003);
buttonGroupLAF.add(jRadioButtonMenuItemSystem);
jRadioButtonMenuItemSystem.setSelected(true);
jRadioButtonMenuItemSystem.setText("\u7cfb\u7edf\u5916\u89c2");
jRadioButtonMenuItemSystem
.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jRadioButtonMenuItemSystemActionPerformed(evt);
}
});
jMenuChangeLAF.add(jRadioButtonMenuItemSystem);
buttonGroupLAF.add(jRadioButtonMenuItemDefault);
jRadioButtonMenuItemDefault.setSelected(true);
jRadioButtonMenuItemDefault.setText("\u9ed8\u8ba4\u5916\u89c2");
jRadioButtonMenuItemDefault
.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jRadioButtonMenuItemDefaultActionPerformed(evt);
}
});
jMenuChangeLAF.add(jRadioButtonMenuItemDefault);
jMenuOperation.add(jMenuChangeLAF);
jMenuBar.add(jMenuOperation);
jMenuHelp.setMnemonic('H');
jMenuHelp.setText("\u5e2e\u52a9(H)");
jMenuItemHelpContents.setText("\u5e2e\u52a9\u5185\u5bb9");
jMenuItemHelpContents
.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemHelpContentsActionPerformed(evt);
}
});
jMenuHelp.add(jMenuItemHelpContents);
jMenuItemAbout.setText("\u5173\u4e8e");
jMenuItemAbout.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemAboutActionPerformed(evt);
}
});
jMenuHelp.add(jMenuItemAbout);
jMenuBar.add(jMenuHelp);
setJMenuBar(jMenuBar);
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout
.setHorizontalGroup(layout
.createParallelGroup(
org.jdesktop.layout.GroupLayout.LEADING)
.add(
layout
.createSequentialGroup()
.addContainerGap()
.add(
layout
.createParallelGroup(
org.jdesktop.layout.GroupLayout.LEADING)
.add(
jScrollPane1,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
380,
Short.MAX_VALUE)
.add(
layout
.createSequentialGroup()
.add(
jTextFieldMessage,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
279,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(
org.jdesktop.layout.LayoutStyle.RELATED,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.add(
jButtonSend))
.add(
layout
.createSequentialGroup()
.add(
jLabelIP)
.addPreferredGap(
org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(
jTextFieldIP,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(
org.jdesktop.layout.LayoutStyle.RELATED)
.add(
jLabelPort)
.addPreferredGap(
org.jdesktop.layout.LayoutStyle.RELATED)
.add(
jTextFieldPort,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(
org.jdesktop.layout.LayoutStyle.RELATED)
.add(
jLabelUsername)
.addPreferredGap(
org.jdesktop.layout.LayoutStyle.RELATED)
.add(
jTextFieldUsername,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
66,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(
org.jdesktop.layout.LayoutStyle.RELATED)))
.addContainerGap()));
layout
.setVerticalGroup(layout
.createParallelGroup(
org.jdesktop.layout.GroupLayout.LEADING)
.add(
layout
.createSequentialGroup()
.addContainerGap()
.add(
layout
.createParallelGroup(
org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabelIP)
.add(
jTextFieldIP,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jLabelPort)
.add(
jTextFieldPort,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jLabelUsername)
.add(
jTextFieldUsername,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(28, 28, 28)
.add(
jScrollPane1,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
189, Short.MAX_VALUE)
.addPreferredGap(
org.jdesktop.layout.LayoutStyle.RELATED)
.add(
layout
.createParallelGroup(
org.jdesktop.layout.GroupLayout.BASELINE)
.add(
jTextFieldMessage,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jButtonSend))));
pack();
}// </editor-fold>
//GEN-END:initComponents
// 在消息输入框按下回车,全选文字并调用发送消息方法
private void jTextFieldMessageActionPerformed(java.awt.event.ActionEvent evt) {
jTextFieldMessage.selectAll();
send();
}
// 菜单 帮助 > 关于
private void jMenuItemAboutActionPerformed(java.awt.event.ActionEvent evt) {
javax.swing.JOptionPane.showMessageDialog(this,
"UDPChat 1.0 by BeanSoft\n2008年5月", "关于 UDPChat",
javax.swing.JOptionPane.INFORMATION_MESSAGE);
}
// 菜单 帮助 > 帮助内容
private void jMenuItemHelpContentsActionPerformed(
java.awt.event.ActionEvent evt) {
String helpContents = "IP地址范围: 224.0.0.1 ~ 239.255.255.255,端口范围 1 ~ 65535,\n必须是局域网或者本机开两个或者多个窗口才可正常聊天。";
addChatText(helpContents);
}
// 窗口关闭,委托调用菜单 文件 > 退出 的功能
private void formWindowClosing(java.awt.event.WindowEvent evt) {
jMenuItemQuitActionPerformed(null);
}
// 菜单 更改为默认外观
private void jRadioButtonMenuItemDefaultActionPerformed(
java.awt.event.ActionEvent evt) {
changeLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
}
// 菜单 更改为系统外观
private void jRadioButtonMenuItemSystemActionPerformed(
java.awt.event.ActionEvent evt) {
changeLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
// 菜单 更改为 Office 2003 外观
private void jRadioButtonMenuItemOffice2003ActionPerformed(
java.awt.event.ActionEvent evt) {
changeLookAndFeel("org.fife.plaf.Office2003.Office2003LookAndFeel");
}
// 菜单 操作 > 清空记录
private void jMenuItemClearActionPerformed(java.awt.event.ActionEvent evt) {
jTextAreaHistory.setText("");
}
// 菜单 文件 > 退出
private void jMenuItemQuitActionPerformed(java.awt.event.ActionEvent evt) {
leave();
dispose();
System.exit(0);
}
// 按钮 发送,点击后发送消息
private void jButtonSendActionPerformed(java.awt.event.ActionEvent evt) {
send();
}
// 菜单 文件 > 离开
private void jMenuItemLeaveActionPerformed(java.awt.event.ActionEvent evt) {
leave();
}
// 菜单 文件 > 连接
private void jMenuItemConnectActionPerformed(java.awt.event.ActionEvent evt) {
join();
}
public static void main(String args[]) {
// 推荐的做法,异步处理线程,实际上此处可以直接写为:
// new UDPChatFrame().setVisible(true);
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new UDPChatFrame().setVisible(true);
}
});
}
//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.ButtonGroup buttonGroupLAF;
private javax.swing.JButton jButtonSend;
private javax.swing.JLabel jLabelIP;
private javax.swing.JLabel jLabelPort;
private javax.swing.JLabel jLabelUsername;
private javax.swing.JMenuBar jMenuBar;
private javax.swing.JMenu jMenuChangeLAF;
private javax.swing.JMenu jMenuFile;
private javax.swing.JMenu jMenuHelp;
private javax.swing.JMenuItem jMenuItemAbout;
private javax.swing.JMenuItem jMenuItemClear;
private javax.swing.JMenuItem jMenuItemConnect;
private javax.swing.JMenuItem jMenuItemHelpContents;
private javax.swing.JMenuItem jMenuItemLeave;
private javax.swing.JMenuItem jMenuItemQuit;
private javax.swing.JMenu jMenuOperation;
private javax.swing.JRadioButtonMenuItem jRadioButtonMenuItemDefault;
private javax.swing.JRadioButtonMenuItem jRadioButtonMenuItemOffice2003;
private javax.swing.JRadioButtonMenuItem jRadioButtonMenuItemSystem;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSeparator jSeparatorFile;
private javax.swing.JTextArea jTextAreaHistory;
private javax.swing.JTextField jTextFieldIP;
private javax.swing.JTextField jTextFieldMessage;
private javax.swing.JTextField jTextFieldPort;
private javax.swing.JTextField jTextFieldUsername;
// End of variables declaration//GEN-END:variables
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -