[Java] 编辑器 →→→→→进入此内容的聊天室

来自 , 2021-02-17, 写在 Java, 查看 120 次.
URL http://www.code666.cn/view/f18a6d1c
  1. package org.crazyit.editor;
  2.  
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.awt.event.KeyAdapter;
  6. import java.awt.event.KeyEvent;
  7. import java.awt.event.WindowAdapter;
  8.  
  9. import javax.swing.BoxLayout;
  10. import javax.swing.JButton;
  11. import javax.swing.JFrame;
  12. import javax.swing.JLabel;
  13. import javax.swing.JPanel;
  14. import javax.swing.JTextField;
  15.  
  16. import org.crazyit.editor.commons.AddInfo;
  17.  
  18. /**
  19.  * 添加界面
  20.  *
  21.  * @author yangenxiong yangenxiong2009@gmail.com
  22.  * @version  1.0
  23.  * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
  24.  * <br>Copyright (C), 2009-2010, yangenxiong
  25.  * <br>This program is protected by copyright laws.
  26.  */
  27. public class AddFrame extends JFrame {
  28.  
  29.         //该Frame的JPanel
  30.         private JPanel mainPanel;
  31.        
  32.         //项目名称
  33.         private JPanel namePanel;
  34.        
  35.         //显示文件的JLabel
  36.         private JLabel nameLabel;
  37.        
  38.         //输入名称的JTextField
  39.         private JTextField nameText;
  40.        
  41.         //放按钮的Panel
  42.         private JPanel buttonPanel;
  43.        
  44.         //确定按钮
  45.         private JButton confirmButton;
  46.        
  47.         //取消按钮
  48.         private JButton cancelButton;
  49.        
  50.        
  51.         public AddFrame(final AddInfo info) {
  52.                 mainPanel = new JPanel();
  53.                 namePanel = new JPanel();
  54.                 //设置nameLabel的文字
  55.                 nameLabel = new JLabel(info.getInfo());
  56.                 nameText = new JTextField("", 20);
  57.                 buttonPanel = new JPanel();
  58.                 confirmButton = new JButton("确定");
  59.                 cancelButton = new JButton("取消");
  60.                
  61.                 mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
  62.                 addWindowListener(new WindowAdapter() {
  63.                         public void windowClosing(java.awt.event.WindowEvent e) {
  64.                                 cancel(info);
  65.                         }
  66.                 });
  67.                 setLocation(200, 200);
  68.                 setResizable(false);
  69.                 //文本框前面的字
  70.                 namePanel.setLayout(new BoxLayout(namePanel, BoxLayout.X_AXIS));               
  71.                 namePanel.add(nameLabel);
  72.                 namePanel.add(nameText);
  73.                 nameText.addKeyListener(new KeyAdapter() {
  74.                         public void keyReleased(KeyEvent e) {
  75.                                 //判断项目路径与名称是否有值, 如果两个text field都有值, 则确定按钮可用
  76.                                 if (nameText.getText().equals("")) {
  77.                                         confirmButton.setEnabled(false);
  78.                                 } else {
  79.                                         confirmButton.setEnabled(true);
  80.                                 }
  81.                         }
  82.                 });
  83.                
  84.                 //确定和取消的按钮
  85.                 buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS));
  86.                 confirmButton.setEnabled(false);
  87.                 buttonPanel.add(confirmButton);
  88.                 buttonPanel.add(new JLabel("    "));
  89.                 buttonPanel.add(cancelButton);
  90.                
  91.                 //为取消按钮添加监听器
  92.                 cancelButton.addActionListener(new ActionListener(){
  93.                         public void actionPerformed(ActionEvent e) {
  94.                                 cancel(info);
  95.                         }
  96.                 });
  97.                 //为确定按钮添加监听器
  98.                 confirmButton.addActionListener(new ActionListener() {
  99.                         public void actionPerformed(ActionEvent e) {
  100.                                 //如果输入框没有值,返回
  101.                                 if (nameText.getText() == "") return;
  102.                                 handerConfirm(info);
  103.                         }
  104.                 });
  105.                 mainPanel.add(namePanel);
  106.                 mainPanel.add(buttonPanel);
  107.                 add(mainPanel);
  108.                 pack();
  109.         }
  110.        
  111.         //处理确定按钮的点击
  112.         private void handerConfirm(AddInfo info) {
  113.                 //获取得用户输入
  114.                 String data = nameText.getText();
  115.                 //新增后会涉及的一些与业务相关的操作留给Handler类处理
  116.                 info.getHandler().afterAdd(info.getEditorFrame(), this, data);
  117.         }
  118.        
  119.         private void cancel(AddInfo info) {
  120.                 //设置EditorFrame可用
  121.                 info.getEditorFrame().setEnabled(true);
  122.                 //让本窗口不可见
  123.                 setVisible(false);
  124.         }
  125.        
  126.  
  127.        
  128. }

回复 "编辑器"

这儿你可以回复上面这条便签

captcha