精华内容
下载资源
问答
  • java窗体事件
    万次阅读 多人点赞
    2019-08-13 17:43:55
    import java.awt.Frame;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    public class Java窗体事件 {
    	public static void main(String[] args) {
    		Frame f = new Frame("WindowEvent");
    		f.setSize(400,300);
    		f.setLocation(300, 200);
    		f.setVisible(true);
    		f.addWindowListener(new WindowAdapter() {
    			public void windowOpened(WindowEvent e) {
    				System.out.println("windowOpened---窗体打开事件");
    			}
    
    			@Override
    			public void windowActivated(WindowEvent e) {
    				// TODO Auto-generated method stub
    				System.out.println("windowActivated---窗体激活事件");
    			}
    
    			@Override
    			public void windowClosed(WindowEvent e) {
    				// TODO Auto-generated method stub
    				System.out.println("windowClosed---窗体关闭事件");
    				
    			}
    
    			@Override
    			public void windowClosing(WindowEvent e) {
    				// TODO Auto-generated method stub
    				System.out.println("windowClosing---窗体正在关闭事件");
    				
    			}
    
    			@Override
    			public void windowDeactivated(WindowEvent e) {
    				// TODO Auto-generated method stub
    				System.out.println("windowDeactivated---窗体停用事件");
    				
    			}
    
    			@Override
    			public void windowDeiconified(WindowEvent e) {
    				// TODO Auto-generated method stub
    				System.out.println("windowDeiconified---窗体取消图标化事件");
    				
    			}
    
    			@Override
    			public void windowIconified(WindowEvent e) {
    				// TODO Auto-generated method stub
    				System.out.println("windowiconified---窗体图标化事件");
    				
    			}
    		});
    	}
    
    }
    
    
    更多相关内容
  • java 窗体事件 WindowListener

    千次阅读 2018-06-13 13:53:44
    import java.awt.BorderLayout;import java.awt.Color;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextFi...
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;

    public class WindowEventDemo extends JFrame implements WindowListener{

    @Override
    public void windowOpened(WindowEvent e) {
    //窗口首次打开时调用
    t.setBackground(Color.RED);//this.setBackground(Color.RED);没有效果 不知为啥???
    }

    @Override
    public void windowClosing(WindowEvent e) {
    //从系统菜单中关闭窗体时调用

    System.out.println("窗口关闭了");
    System.exit(-1);
    }

    @Override
    public void windowClosed(WindowEvent e) {
    //关闭窗体时调用  API: 因对窗口调用 dispose 而将其关闭时调用。
    // System.exit(-1);放在这里不能完全关闭程序   红点还是亮的
    }

    @Override
    public void windowIconified(WindowEvent e) {
    //窗体变为最小化时调用
    }

    @Override
    public void windowDeiconified(WindowEvent e) {
    //窗体变为正常状态事调用
    }


    @Override
    public void windowActivated(WindowEvent e) {
    //窗体被激活时调用

    }

    @Override
    public void windowDeactivated(WindowEvent e) {
    // 当 Window 不再是活动 Window 时调用。
    }
    //WindowAdaptor类中的
    /* public void windowDeactivated(WindowEvent e) {
    // 当 Window 不再是活动 Window 时调用。
    }


    public void windowStateChanged(WindowEvent e) {
    //当窗口状态改变时调用。
    }


    public void windowGainedFocus(WindowEvent e) {
    //窗口获得焦点时调用

    }

    public void windowLostFocus(WindowEvent e) {
    //窗口失去焦点时调用
    }*/


    JTextField t=new JTextField("内容");
    public void initUI() {
    JLabel title=new JLabel("窗体事件",JTextField.CENTER);//也行
    add(title,BorderLayout.NORTH);
    add(t,BorderLayout.CENTER);

    addWindowListener(this);
    setSize(500, 300);
    setLocationRelativeTo(null);//居中显示
    setVisible(true);
    setResizable(false);//禁止最大化
    // setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    public static void main(String[] args) {
    WindowEventDemo t=new WindowEventDemo();
    t.initUI();
    }
    }
    展开全文
  • Java代码演示常用窗体控件布局的方法,主要向Java初学者演示一些在Java窗体中布局排列文本框、下拉框控件的对齐方法和具体实现,代码简单,是个不错的例子。
  • 在主界面上单击菜单,可以打开子窗体.java swing自带的JTabbedPane没有显示关闭按钮的功能,这里在com.mkmis.controls包下自定义了一个TabbedPane控件,可以实现带关闭按钮的页签面板.应用结构如下图所示:  2 ...
  • Java创建父子窗体

    2021-03-16 06:18:21
    摘要:Java源码,窗体界面,父窗口,子窗口 Java 的swing 组件创建父子窗口的例子,使用的结构是JDesktopPane-JInternalFrame。JDesktopPane 相当于一个“父窗口”,可以拥有多个作为“子窗口”的JInternalFrame 对象。...
  • 在本篇内容里小编给大家详细分析了关于改变JAVA窗体属性的操作方法和步骤,需要的朋友们学习下。
  • 主要介绍了Java Swing实现窗体添加背景图片的2种方法,结合实例形式较为详细的分析了Swing实现窗体添加背景图片的方法,并总结分析了Swing重绘中repaint与updateUI的区别,需要的朋友可以参考下
  • 在本文中我们给大家整理了关于Java透明窗体的设置方法以及需要注意的地方,需要的朋友们学习参考下。
  • 摘要:Java源码,窗体界面,分层框架 Java实现分层框体,实现思路是:先创建一个JLayeredPane 类的实例,然后逐个地在这个对象的不同层上添加不同颜色的JLabel 对象。在不同层上添加JLabel 对象的方法如下:  ...
  • 窗体三种事件JFrame

    2021-03-12 21:02:14
    import java.awt.event.WindowEvent;import java.awt.event.WindowFocusListener;import java.awt.event.WindowListener;import javax.swing.JFrame;import javax.swing.JOptionPane;public class...

    package com.swing;

    import java.awt.event.WindowEvent;

    import java.awt.event.WindowFocusListener;

    import java.awt.event.WindowListener;

    import javax.swing.JFrame;

    import javax.swing.JOptionPane;public classTestJFrame4 extends JFrame{publicTestJFrame4(){

    init();

    }public voidinit(){this.setSize(400,300);this.setTitle("第一个JFrame窗体");//this.setIconImage(image);

    this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//这里是简单的处理了用户点击关闭的事件,//如果想复杂的处理话就要使用事件处理机制

    this.setResizable(false);//不能改变窗体大小

    this.setVisible(true);this.addWindowListener(newMyListener());

    }public static voidmain(String[] args) {newTestJFrame4();

    }public classMyListener implements WindowListener{

    @Overridepublic voidwindowActivated(WindowEvent e) {//TODO Auto-generated method stub

    }

    @Overridepublic voidwindowClosed(WindowEvent e) {//TODO Auto-generated method stub

    }

    @Overridepublic voidwindowClosing(WindowEvent e) {//TODO Auto-generated method stub//System.out.println("试图关闭时调用,this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);一起使用");//JOptionPane.showMessageDialog(null, "你要关闭窗体了", "警告", JOptionPane.WARNING_MESSAGE );

    int i = JOptionPane.showConfirmDialog(null,"你没有保存", "choose one", JOptionPane.YES_NO_CANCEL_OPTION);if(i==1){

    JOptionPane.showMessageDialog(null, "你点了否", "警告", JOptionPane.WARNING_MESSAGE );return;

    }if(i==2){

    JOptionPane.showMessageDialog(null, "你点了取消", "警告", JOptionPane.WARNING_MESSAGE );return;

    }if(i==0){

    JOptionPane.showMessageDialog(null, "你点了是", "警告", JOptionPane.WARNING_MESSAGE );

    System.exit(0);

    }

    }

    @Overridepublic voidwindowDeactivated(WindowEvent e) {//TODO Auto-generated method stub

    }

    @Overridepublic voidwindowDeiconified(WindowEvent e) {//TODO Auto-generated method stub

    }

    @Overridepublic voidwindowIconified(WindowEvent e) {//TODO Auto-generated method stub

    }

    @Overridepublic voidwindowOpened(WindowEvent e) {//TODO Auto-generated method stub

    }

    }

    }

    展开全文
  • 主要为大家详细介绍了Java Swing窗体关闭事件的调用关系,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 摘要:Java源码,窗体界面,漂亮界面 Java实现不同风格的漂亮窗体Java美化窗口的例子,即Model-View-Controller结构,本代码将解决如何在一个程序中切换使用各种界面风格,在窗口上放置了几个典型的swing 组件,来...
  • 简易的 Java Jframe窗体聊天室,操作简单,代码注释详细,适合初学者
  • 主要介绍了java开发gui教程中jframe监听窗体大小变化事件和jframe创建窗体的示例,需要的朋友可以参考下
  • 整个窗体程序的运行模式是:事件处理模式。需要理解这个模式,要了解3个基本概念 事件源:即产生这个事件的组件 监视器:即监视这个组件产生事件,即实现事件接口的类的对象 处理事件的接口:即这是一个类,实现了该...

    整个窗体程序的运行模式是:事件处理模式。需要理解这个模式,要了解3个基本概念
    事件源:即产生这个事件的组件
    监视器:即监视这个组件产生事件,即实现事件接口的类的对象
    处理事件的接口:即这是一个类,实现了该种事件对应的接口,接口中必须实现一指定函数,当事件发生时,就会调用这个函数

    进一步流程就是
    1确定该组件的事件类型-2创建一个类实现该组件的事件类型对应的接口,这个类的对象就是监视器-3组件通过addXXXListen(监视器对象)将该
    监视器添加-4在窗体上操作,产生对应的事件时将会执行那个监视器类中的对应函数【利用接口回调】。

    需要注意的一点,并不是所有的组件都是同样事件类型,事件类型有很多种,有些组件是相同的,有些是不同的。

    (一)ActionEvent事件

    该事件的触发通常是 文本框,按钮,菜单项,密码框和单选按钮触发的。按钮和菜单项可以在点击时触发,文本框密码框之类的可以在回车时触发。
    其要求的监视器类型接口是ActionListener,即需要有一个自定的类实现ActionListener接口,该接口的核心函数actionPerformed(ActionEvent e)需要实现该函数
    组件对象通过addActionListener(ActionListener listener)将实现了ActionListener接口的类的对象传入。一但事件发生,就可以通过接口回调的方式调用这个actionPerformed函数。
    需留意:这个ActionEvent类型的参数e,可以用他来获得到产生该事件时传来的数据,比如输入文本后回车,e可以获得文本的内容
    通过e.getActionCommond()函数来获得(×稍后讲解他的局限性和另外的方法获得输入的内容)

    以下是一个小案例,来展示从界面输入的值回车后,打印在控制台并输出他的长度

     public class InputListener implements ActionListener {
         /**
          * 实现该接口的方法
          * @param e
          */
         public void actionPerformed(ActionEvent e)
         {
             //通过ActionEvent对象来获得输入
             String str=e.getActionCommand();
             System.out.println("输入了"+str+"长度为:"+str.length());
         }
     }
     /**
      * 一个简单的窗口
      */
     public class SimpleForm extends JFrame {
         private JTextField textField;//一个输入框
         private InputListener inputListener;//一个实现了ActionListener接口的监视器
         public SimpleForm()
         {
             //设置GUI
             setLayout(new FlowLayout());
             textField=new JTextField(10);
             add(textField);
             setBounds(100,100,310,260);
             setVisible(true);
             setDefaultCloseOperation(DISPOSE_ON_CLOSE);
             //设置监听器
             inputListener=new InputListener();//监听器初始化
             textField.addActionListener(inputListener);//为该组件添加监视器
     
         }
     
     }
     //启动类
     public class Main {
         public static void  main(String []args)
         {
             SimpleForm form=new SimpleForm();
         }
     }
    

    刚刚提到过,可以ActionEvent获得输入,其实这种获取局限性很高,因为他只能获取一个输入,当有多个输入框,且使用一个按钮,按钮点击时获得所有输入框的值
    这种方式就不适用了。以下提供下面一种解决方式

    前提:需要保证这个实现接口的类能够拿到组件的引用,通过组件自己的get方法拿到组件中的值
    改写如下

    /**
     * 一个简单的窗口
     */
    public class SimpleForm extends JFrame {
        private JTextField textField;//一个输入框
        private InputListener inputListener;//一个实现了ActionListener接口的监视器
        public SimpleForm()
        {
            //设置GUI
            setLayout(new FlowLayout());
            textField=new JTextField(10);
            add(textField);
            setBounds(100,100,310,260);
            setVisible(true);
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            //设置监听器
            inputListener=new InputListener();//监听器初始化
            textField.addActionListener(inputListener);//为该组件添加监视器
            inputListener.setJTextField(textField);//【法2】通过引用来拿到组件中的值
        }
    
    }
    public class InputListener implements ActionListener {
        //通过拿到组件引用获得里面的值的方法
        private JTextField textField;
        public void setJTextField(JTextField textField)
        {
            this.textField=textField;
        }
    
    
        /**
         * 实现该接口的方法
         * @param e
         */
        public void actionPerformed(ActionEvent e)
        {
            //通过ActionEvent对象来获得输入
            //String str=e.getActionCommand();
            //System.out.println("输入了"+str+"长度为:"+str.length());
    
            //【法2】不使用ActionEvent对象来获得组件的值,通过组件引用来拿到值
            String str=textField.getText();
            System.out.println("输入了"+str+"长度为:"+str.length());
        }
    }
    

    效果如下-输入完后按回车
    在这里插入图片描述
    当然,这种效果并不直观,因为用户交互始终是在窗体上,且实际应用发布后不会有控制台,所以需要把结果也显示在窗体上。对以上程序进行了改进

    public class InteractorListener implements ActionListener {
        private JTextField textField;
        private JTextArea textArea;
        public void setJTextField(JTextField textField)
        {
            this.textField=textField;
    
        }
        public void setJTextArea(JTextArea textArea)
        {
            this.textArea=textArea;
        }
    
        /**
         * 实现接口函数
         */
        public void actionPerformed(ActionEvent e)
        {
            String input=textField.getText();//获取到文本框的输入
            textArea.append("输入的是"+input+"长度为"+input.length()+"\n");//再将该输入作用到窗口中的组件
        }
    }
    public class SimpleForm extends JFrame {
        private JTextField inputTextField;
        private JTextArea resultTextArea;
        private JButton executeBtn;
        private InteractorListener listener;
        public SimpleForm()
        {
            //GUI部分
            setLayout(new FlowLayout());
            inputTextField=new JTextField(10);
            resultTextArea=new JTextArea(9,30);
            executeBtn=new JButton("执行");
            add(new JScrollPane(resultTextArea));//将多行文本输入放入滚条面板,把滚条面板加入该面板
            add(inputTextField);
            add(executeBtn);
            setVisible(true);
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            setTitle("交互演示");
            setBounds(100,100,460,360);
            //设置监听器
            listener=new InteractorListener();//实例化监听器
            listener.setJTextField(inputTextField);//设置获取值组件
            listener.setJTextArea(resultTextArea);//设置输出值的组件
            inputTextField.addActionListener(listener);//为输入框事件源添加监听器:即代表回车后会触发事件
            executeBtn.addActionListener(listener);//为按钮事件源添加监听器:即代表按钮点击后会触发事件
        }
    }
    public class Main {
        public static void main(String []args)
        {
            SimpleForm form=new SimpleForm();
        }
    }
    

    效果如下

    在这里插入图片描述
    ActionEvent 变量的用处还是有的。当对于菜单项点击时使用,就是一大便利之处。
    为多个菜单项添加同一个ActionEvent监听器对象,然后这个ActionEvent监听器的actionFormed函数中,通过e.getActionComond()来区分到底点击的是哪个菜单项,然后执行对应的操作。此时就是这种方式的优点,如果不这么做,通过获取组件引用的方式,就会产生多个(个数为菜单项的个数)监听器。更加麻烦
    使用这种方式有一个前提,需要对JMenuItem 对象,即菜单项对象进行设置ActiionComond,即调用setActionComond(string str)后面有一个排序单词的窗体程序就展示了这个效果

    (二)ItemEvent事件

    该事件通常是由选择框(checkbox复选框,radioBox单选框)和下拉菜单触发的,选择框共有两种状态,即选中和未选中,当选中状态发生改变就会触发
    ItemEvent事件,其要求的监视器接口类型为ItemListener,即需要有一个类来实现ItemListener接口,并实现其核心函数itemStateChanges(ItemEvent e).
    组件通过addItemListener(ItemListener listener),传入实现了这个ItemListener接口的类的对象,一但事件发生,将会通过接口回调的方式调用这个addItemListener函数


    以下用这个ItemEvent做了一个简易计算器
    这个案例涉及到两个监听器

    public class CaculateListener implements ActionListener {
        private String fuhao;
        public void setFuhao(String fuhao)
        {
            this.fuhao=fuhao;
        }
        private JTextField num1;
        private JTextField num2;
        private JButton caculateBtn;
        private JTextArea resultArea;
    
        public void setNum1(JTextField num1) {
            this.num1 = num1;
        }
    
        public void setNum2(JTextField num2) {
            this.num2 = num2;
        }
    
        public void setCaculateBtn(JButton caculateBtn) {
            this.caculateBtn = caculateBtn;
        }
    
        public void setResultArea(JTextArea resultArea) {
            this.resultArea = resultArea;
        }
    
        /**
         * 实现该接口的函数
         * @param actionEvent
         */
        public void actionPerformed(ActionEvent actionEvent)
        {
            try {
                double d1 = Double.parseDouble(num1.getText());
                double d2=Double.parseDouble(num2.getText());
                double res=0;
                if(fuhao.equals("+"))
                {
                    res=d1+d2;
                }else if(fuhao.equals("-"))
                {
                    res=d1-d2;
                }else if(fuhao.equals("*"))
                {
                    res=d1*d2;
                }else if(fuhao.equals("/"))
                {
                    res=d1/d2;
                }
                resultArea.append(d1+fuhao+d2+"结果为"+res+"\n");
            }catch (Exception e)
            {
                System.out.println("发生运算错误,异常信息为:"+e);
            }
        }
    }
    
    public class FuhaoListener implements ItemListener {
        private JComboBox fuhaoBox;//获得符号下拉菜单的引用,以便获取其中选到的值
        public void setFuhaoBox(JComboBox fuhaoBox)
        {
            this.fuhaoBox=fuhaoBox;
        }
        private CaculateListener caculateListener;//获得另一个监听器的引用,因为需要吧选则的运算符传过去
        public void setCaculateListener(CaculateListener listener)
        {
            this.caculateListener=listener;
        }
    
    
        /**
         * 实现函数
         * @param e
         */
        public void itemStateChanged(ItemEvent e)
        {
            System.out.println("符号设置了");
            String fuhao=fuhaoBox.getSelectedItem().toString();
            //要把这个符号设置给另一个Listener,让他知道运算符是啥
            caculateListener.setFuhao(fuhao);
        }
    
    }
    public class CaculatorForm extends JFrame {
        private JTextField inputNum1;//第一个操作数
        private JTextField inputNum2;//第二个操作数
        private JComboBox choiceFuhao;//操作符
        private JButton caculateBtn;//进行计算
        private JTextArea resTextArea;//结果显示区
        //监视器定义
        private CaculateListener caculateListener;
        private FuhaoListener fuhaoListener;
    
        public CaculatorForm()
        {
            //GUI部分
            setLayout(new FlowLayout());
            inputNum1=new JTextField(10);
            inputNum2=new JTextField(10);
            choiceFuhao=new JComboBox();
            String []fuhaos={"+","-","*","/"};
            for(String temp:fuhaos)
            {
                choiceFuhao.addItem(temp);
            }
            caculateBtn=new JButton("计算");
            resTextArea=new JTextArea(9,30);
            add(inputNum1);
            add(inputNum2);
            add(choiceFuhao);
            add(caculateBtn);
            add(resTextArea);
            setVisible(true);
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            setBounds(100,100,390,360);
            setTitle("计算器");
    
    
            //设置监听器
            caculateListener=new CaculateListener();
            fuhaoListener=new FuhaoListener();
            //设置组件
            fuhaoListener.setCaculateListener(caculateListener);//最重要的一步,因为该窗体涉及到两个监听器,且之间有通讯
            caculateListener.setNum1(inputNum1);
            caculateListener.setNum2(inputNum2);
            caculateListener.setCaculateBtn(caculateBtn);
            caculateListener.setResultArea(resTextArea);
            fuhaoListener.setFuhaoBox(choiceFuhao);
    
            //添加监听
            choiceFuhao.addItemListener(fuhaoListener);
            caculateBtn.addActionListener(caculateListener);
        }
    
    }
    
    public class Main {
        public static void main(String[] args)
        {
            CaculatorForm form=new CaculatorForm();
        }
    }
    

    效果如下
    在这里插入图片描述

    (三)DocumentEvent事件

    该事件的触发只有一个组件,即文本区组件JTextArea。只要当文本框中的内容发生改变时就会触发。其要求的监视器的接口类型为DocumentListener
    即需要有一个类来实现DocumentListener接口,并实现该接口中的核心函数,该接口中有3个需要实现的函数:
    1:void changedUpdate(DocumentEvent e)
    2:void removeUpdate(DocumentEvent e)
    3:void insertUpdate(DocumentEvent e)

    由于文档变化一共就有以上3种可能,被替换,被移除,新插入。发生了对应的事件,就会执行其中对应的函数。
    以下是一个demo,实时对左边输入的单词进行排序

    public class EditorListener implements DocumentListener {
        private JTextArea inputArea;
        private JTextArea outputArea;
    
    
        public void setInputArea(JTextArea inputArea) {
            this.inputArea = inputArea;
        }
    
        public void setOutputArea(JTextArea outputArea) {
            this.outputArea = outputArea;
        }
    
        //实现该接口的3个核心函数
        //该案例的需求,只要变动了就进行排序,所以这3个函数执行的内容都是相同的,为了避免代码重复可以
        public void insertUpdate(DocumentEvent e)
        {
            sort();
        }
        public void removeUpdate(DocumentEvent e)
        {
            sort();
        }
        public void changedUpdate(DocumentEvent e)
        {
            sort();
        }
    
        /**
         * 排序单词函数
         */
        private void sort()
        {
            String regex="[\\s\\d\\p{Punct}]+";
            String inputStr=inputArea.getText();
            String[] words=inputStr.split(regex);
            Arrays.sort(words);
            outputArea.setText(null);
            for(String temp:words)
            {
                outputArea.append(temp+",");
            }
        }
    }
    
    public class MenuItemListener implements ActionListener {
        private JTextArea inputArea,outputArea;
        public void setInputArea(JTextArea inputArea)
        {
            this.inputArea=inputArea;
    
        }
        public void setOutputArea(JTextArea outputArea)
        {
            this.outputArea=outputArea;
        }
    
    
        public void actionPerformed(ActionEvent e)
        {
            //判断按下的是哪个菜单项,因为3个菜单项共有一个Listener
            String actionCommand=e.getActionCommand();
            if(actionCommand.equals("copy"))
            {
                outputArea.copy();
            }else if(actionCommand.equals("cut"))
            {
                outputArea.cut();
            }else if(actionCommand.equals("paste"))
            {
                inputArea.paste();
            }
        }
    }
    public class DocumentForm extends JFrame {
        private JTextArea inputText,outputText;
        private JMenuBar menuBar;
        private JMenu menu;
        private JMenuItem copy,cut,paste;
        //监听器
        private EditorListener editorListener;
        private MenuItemListener menuItemListener;
    
        public DocumentForm()
        {
            //GUI部分
            setLayout(new FlowLayout());
            inputText=new JTextArea(15,20);
            outputText=new JTextArea(15,20);
            outputText.setLineWrap(true);//设置文本区自动换行
            outputText.setWrapStyleWord(true);//设置自动换行,以单词
            menuBar=new JMenuBar();
            menu=new JMenu("编辑");
            copy=new JMenuItem("复制");
            cut=new JMenuItem("剪切");
            paste=new JMenuItem("粘贴");
            copy.setActionCommand("copy");//设置代号-为使MenuItemListener能够判别具体的是哪个菜单项被点击
            cut.setActionCommand("cut");//同上
            paste.setActionCommand("paste");//同上
            //将菜单项加入菜单中
            menu.add(copy);
            menu.add(cut);
            menu.add(paste);
            //菜单加入菜单条
            menuBar.add(menu);
            //界面加入这些组件,以滚动文本域的方式
            add(new JScrollPane(inputText));
            add(new JScrollPane(outputText));
            setJMenuBar(menuBar);
            setVisible(true);
            setBounds(100,100,590,500);
            setTitle("单词排序");
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            //设置监听器
            editorListener=new EditorListener();
            menuItemListener=new MenuItemListener();
            editorListener.setInputArea(inputText);
            editorListener.setOutputArea(outputText);
            menuItemListener.setInputArea(inputText);
            menuItemListener.setOutputArea(outputText);
            //添加监听器
            inputText.getDocument().addDocumentListener(editorListener);//DocumentListener
            //菜单项中3个的Listener使用的是相同的
            copy.addActionListener(menuItemListener);
            cut.addActionListener(menuItemListener);
            paste.addActionListener(menuItemListener);
    
        }
    }
    public class Main {
        public static void main(String []args)
        {
            DocumentForm form=new DocumentForm();
        }
    }
    

    效果如下
    在这里插入图片描述

    上一篇:Java swing GUI 编程
    https://blog.csdn.net/tanyu159/article/details/89047942
    下一篇:Java swing开发窗体程序(三)事件(Mouse,Foucs,Key,Window)
    https://blog.csdn.net/tanyu159/article/details/89113100

    【!!!】欢迎关注我的个人线上课堂https://www.zuikakuedu.cn,内含JavaWeb与Unity游戏开发实战教程,完全免费!,Csdn博客涉及的课程资料也在该网站上

    展开全文
  • java 窗体应用程序

    热门讨论 2012-11-02 14:50:16
    这是用java写的窗体应用程序,求一个数的平方,只要理解了这个程序,对java窗体程序应该没什么问题了!
  • 主要介绍了java实现jframe透明窗体示例,需要的朋友可以参考下
  • java简单登录窗体

    2016-09-07 17:01:47
    简单的java登录窗体,以实现数据库连接。
  • 下面小编就为大家带来一篇Java窗体居中显示的2种方法(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • java窗体的应用

    2016-03-08 17:37:02
    java窗体的应用
  • 这是一个Java使用swing 组件实现窗体美化的例子,通过这个例子或许可以让更多的Java编程者了解其窗体设计的过程,在本代码中,还实现了窗体风格的单击切换功能。
  • java代码-使用java解决代码生成记事本窗体的源代码 ——学习参考资料:仅用于个人学习使用!
  • 主要为大家详细介绍了java实现点击按钮弹出新窗体功能,旧窗体不进行操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 简单的介绍了如何利用Eclipse实现Java窗体可视化开发,简化Java中窗体开发的复杂性,文档中给了一个简单例子,附加代码和界面。
  • java怎么做窗体

    千次阅读 2021-02-27 16:57:23
    展开全部如果是要进行AWT或者Swing编程需要将类打包成e69da5e6ba...下面是一个简单的登录窗口例子:效果图:代码:importjava.awt.*;importjava.awt.event.*;publicc...
  • java窗体文本框

    千次阅读 2021-02-27 15:26:43
    18 AWT对等模式理解示意图 × Java AWT 窗体组件 对话框组件 按钮组件 菜单组件 Windows操作系统 窗体组件 对话框组件 按钮组件 菜单组件 API API API API 19 ......思路:这题关键是怎么实现按按钮就将文本框的颜色...
  • 实验名称使用java窗体工具做一个简单的计算器 实验目的 学会使用java窗体控件 主要使用JButton以及JLaber空间 使用监听器 会设置各种控件参数 学会处理各种数据之间的转换 软件微小问题的调试与优化 实验内容 使用...
  • Java 窗体关闭代码

    2012-09-09 23:10:04
    这个程序是实现窗体关闭的功能! 程序代码简单易懂,可以参考和复制用下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,434
精华内容 28,973
关键字:

java窗体事件