《互联网程序设计(Java)》——课程笔记1:JAVA图形窗口程序设计

教学与实践目的:学会Java图形界面的设计及标准输入输出方法。

 

一、程序设计第一步:在指定的区域录入信息,到指定的区域显示该信息。

   图形界面如图1所示。

   知识点:基于界面的Java字符串读写技术。

                           图1 用户界面

 

程序技术:

  个Java窗体类来实现,并完成上述的任务。  

制作过程

(1)   启动NetBeans平台,新建一个项目,选“JVAVA应用程序”,并命名该项目,如JavaApp,并完成项目创建所需的其它工作。然后在项目名下新建一个java包,如basicIO,在该包名目下新建一个JFrame窗体程序,命名为IOJFrame;

 

(2)   在IOJFrame的设计界面上分别选右边“组件面板”中的“标签”“文本区域”“文本字段”“按钮”拖放到IOJFrame的设计界面上,并按图1命名各组件。

 

先试运行IOJFrame.java程序,成功后进行下面的工作。若出现“没有主类”等不能运行的信息,则删除原有项目,重新创建新项目,创建过程中,除了命名和位置信息外,不要改动其他的默认配置信息。

 

(3)   鼠标右击“发送”按钮,如图2,进入源程序代码设计区,设置事件响应动作。

 

                  图2 右击按钮添加动作代码

 

按钮动作响应代码:

String msg = jTextField1.getText();//从信息录入区中取出字符串

jTextField1.setText(null);  //信息录入区置空

jTextArea1.append("echo:"+msg +"\n"); //将获取的字符串显示在信息显示区。

 

说明:其中‘\n’为换行显示字符。在运行中若出现响应动作不如期望的,观察组件的变量名(如jTextField1)是否一致。

 

(4)   在“退出”按钮中,添加程序结束运行代码:

System.exit(0);

(5)   让字段录入框jTextField1支持回车键和ALT键。

在界面设计模式下,选中jTextField1框,右击鼠标选中事件下的Action,进入代码设计区,调用发送按钮的功能:

      this.jButton1ActionPerformed(evt);

在界面设计模式下,选中jTextField1框,右击鼠标选中事件下的Key进入代码设计区,调用发送按钮的功能:

     if(evt.isAltDown())//在evt事件类中判断Alt按键事件。

         this.jButton1ActionPerformed(null);

 

   对特殊按键事件的响应是界面程序设计中重要的技术,尤其是游戏程序设计技术,能举一反三,多练习几个按键的动作设计。

 

我的实践:

代码:


package basicIO;

import java.util.Date;

/**
 *
 * @author 
 */
public class IOJFrame extends javax.swing.JFrame {

    /**
     * Creates new form IOJFrame
     */
    FileWrite fw = new FileWrite();
    public IOJFrame() {
        
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jTextField1 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("信息显示区");

        jLabel2.setText("信息读取区");

        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jScrollPane1.setViewportView(jTextArea1);

        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });
        jTextField1.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTextField1KeyPressed(evt);
            }
        });

        jButton1.setText("发送");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("退出");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(97, 97, 97)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jButton1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jButton2))
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 251, Short.MAX_VALUE)
                            .addComponent(jTextField1))))
                .addContainerGap(52, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(1, 1, 1)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(4, 4, 4)
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 14, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jButton2))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
            this.jButton1ActionPerformed(evt);        // TODO add your handling code here:
    }                                           

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String msg = jTextField1.getText();//从信息录入区中取出字符串
        jTextField1.setText(null);  //信息录入区置空 
        jTextArea1.append(msg +"\n"); //将获取的字符串显示在信息显示区。
        fw.append(new Date()+msg);//保存聊天信息到磁盘文件.
        // TODO add your handling code here:
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        System.exit(0);        // TODO add your handling code here:
        fw.close();
    }                                        

    private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) {                                       
      if(evt.isAltDown())//在evt事件类中判断Alt按键事件。
         this.jButton1ActionPerformed(null);
        // TODO add your handling code here:
    }                                      

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(IOJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(IOJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(IOJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(IOJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new IOJFrame().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration                   
}









 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java语言程序设计是一门广泛应用于软件开发的高级编程语言。它具有可移植性强、语法简洁明了、面向对象和面向过程相结合的特点,因此被广泛应用于开发各种类型的软件如网站、桌面应用程序、移动应用程序等。 首先,Java语言具有跨平台性。Java程序编译后生成的字节码可以在不同的操作系统上运行,无需对源代码进行修改。这使得Java成为开发跨平台应用的首选语言。 其次,Java具有丰富的库和工具。Java开发提供了大量的库和工具,如Swing和JavaFX用于构建用户界面,JDBC用于数据库操作,Spring和Hibernate用于应用开发等。这些库和工具能够极大地提高开发效率,并增强程序的功能和性能。 另外,Java是一门面向对象的语言。面向对象编程的特点是将程序抽象成对象,通过对象之间的交互来实现功能。Java语言支持类、封装、继承和多态等面向对象的特性,使得程序更易于理解、扩展和维护。 此外,Java还具有丰富的安全性和可靠性特点。Java提供了内置的安全性机制,如自动内存管理和异常处理等,减少了内存泄漏和程序崩溃的概率。此外,Java还支持多线程编程,能够实现并发执行,提高程序的效率。 综上所述,Java语言程序设计具有跨平台性、丰富的库和工具、面向对象编程和安全可靠性等特点。它是一门值得学习和应用的编程语言,为开发者提供了无限的发展潜力和应用空间。无论是初学者还是有经验的开发者,都能够通过学习Java语言来构建高质量的软件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值