JAVA窗口应用程序编程

JAVA窗口应用程序编程

题干

请编写一个窗体应用程序,要求如下:

  1. 至少包括三个窗体,可以实现窗体间的跳转;
  2. 窗体内出现多种控件,比如标签、文本框、单选按钮、按钮等,实现事件处理;
  3. 程序中涉及到数据库操作,包括数据的增、删、改、查,数据库可以使用Sqlserver、Mysgl等

代码

// 导入相关的类库
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;

// 定义一个主类,继承自JFrame
public class WindowApp extends JFrame {
  // 定义一些组件和变量
  private JPanel panel1, panel2, panel3; // 三个窗体
  private JLabel label1, label2, label3; // 标签
  private JTextField textField1, textField2, textField3; // 文本框
  private JRadioButton radioButton1, radioButton2, radioButton3; // 单选按钮
  private JButton button1, button2, button3; // 按钮
  private ButtonGroup group; // 按钮组
  private Connection conn; // 数据库连接
  private Statement stmt; // 数据库语句
  private ResultSet rs; // 数据库结果集

  // 定义一个构造方法,设置窗体的属性和布局
  public WindowApp() {
    // 设置窗体的标题、大小、位置和关闭方式
    setTitle("Java窗体应用程序");
    setSize(400, 300);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // 初始化数据库连接
    initDB();

    // 初始化组件
    initComponent();

    // 初始化窗体
    initPanel();

    // 添加窗体到窗体容器中
    getContentPane().add(panel1);
    getContentPane().add(panel2);
    getContentPane().add(panel3);

    // 设置第一个窗体可见,其他窗体不可见
    panel1.setVisible(true);
    panel2.setVisible(false);
    panel3.setVisible(false);

    // 设置窗体可见
    setVisible(true);
  }

  // 初始化数据库连接的方法
  public void initDB() {
    try {
      // 加载数据库驱动,这里以MySQL为例
      Class.forName("com.mysql.jdbc.Driver");
      // 获取数据库连接,需要指定数据库的URL、用户名和密码
      conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
      // 创建数据库语句对象
      stmt = conn.createStatement();
    } catch (Exception e) {
      // 处理异常
      e.printStackTrace();
    }
  }

  // 初始化组件的方法
  public void initComponent() {
    // 创建标签,并设置文本
    label1 = new JLabel("请输入姓名:");
    label2 = new JLabel("请选择性别:");
    label3 = new JLabel("请输入年龄:");

    // 创建文本框,并设置初始文本为空
    textField1 = new JTextField("");
    textField2 = new JTextField("");
    textField3 = new JTextField("");

    // 创建单选按钮,并设置文本
    radioButton1 = new JRadioButton("男");
    radioButton2 = new JRadioButton("女");
    radioButton3 = new JRadioButton("其他");

    // 创建按钮组,并将单选按钮添加到按钮组中
    group = new ButtonGroup();
    group.add(radioButton1);
    group.add(radioButton2);
    group.add(radioButton3);

    // 创建按钮,并设置文本
    button1 = new JButton("下一步");
    button2 = new JButton("上一步");
    button3 = new JButton("提交");

    // 为按钮添加事件监听器,实现窗体间的跳转和数据库操作
    button1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        // 切换到第二个窗体
        panel1.setVisible(false);
        panel2.setVisible(true);
        panel3.setVisible(false);
      }
    });
    button2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        // 切换到第一个窗体
        panel1.setVisible(true);
        panel2.setVisible(false);
        panel3.setVisible(false);
      }
    });
    button3.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        // 获取用户输入的信息
        String name = textField1.getText();
        String gender = "";
        if (radioButton1.isSelected()) {
          gender = "男";
        } else if (radioButton2.isSelected()) {
          gender = "女";
        } else if (radioButton3.isSelected()) {
          gender = "其他";
        }
        String age = textField3.getText();
        // 拼接SQL语句,实现数据的插入
        String sql = "insert into user (name, gender, age) values ('" + name + "', '" + gender + "', '" + age + "')";
        try {
          // 执行SQL语句,并获取影响的行数
          int rows = stmt.executeUpdate(sql);
          // 判断是否插入成功
          if (rows > 0) {
            // 弹出提示框,显示成功信息
            JOptionPane.showMessageDialog(null, "提交成功!");
          } else {
            // 弹出提示框,显示失败信息
            JOptionPane.showMessageDialog(null, "提交失败!");
          }
        } catch (Exception ex) {
          // 处理异常
          ex.printStackTrace();
        }
      }
    });
  }

  // 初始化窗体的方法
  public void initPanel() {
    // 创建窗体,并设置布局为流式布局
    panel1 = new JPanel(new FlowLayout());
    panel2 = new JPanel(new FlowLayout());
    panel3 = new JPanel(new FlowLayout());

    // 将组件添加到对应的窗体中
    panel1.add(label1);
    panel1.add(textField1);
    panel1.add(button1);
    panel2.add(label2);
    panel2.add(radioButton1);
    panel2.add(radioButton2);
    panel2.add(radioButton3);
    panel2.add(button2);
    panel3.add(label3);
    panel3.add(textField3);
    panel3.add(button3);
  }

  // 主方法,用于启动程序
  public static void main(String[] args) {
    // 创建窗体对象
    WindowApp app = new WindowApp();
  }
}

还可以参看以下内容修改
(1) Java GUI 桌面应用开发 - 知乎.https://zhuanlan.zhihu.com/p/465066522
(2) java swing开发窗体程序开发(一)GUI编程 - CSDN博客. https://blog.csdn.net/tanyu159/article/details/89047942.
(3) Java AWT Swing(图形界面编程)全套教程,基础入门进阶 … https://www.bilibili.com/video/BV1wh411d7it/.
(4) Java Swing入门课程_图形界面GUI编程_100集视频教程_哔哩 … https://www.bilibili.com/video/BV1h7411v7Mq/.

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值