Java jframe,jpanel,jlabel,jbutton,jtextfield,jpassword,jtextarea,jradiobutton,buttongroup,jcheckbox,jcombobox,jscrollpane,color,组件的结合使用代码制作一个图书借阅管理系统,并具有查询数据时显示在一个具有上下左右的滚动条的表里面,给出示例代码,中文注释

时间: 2023-11-25 16:07:12 浏览: 40
好的,我来给你提供一个示例代码,其中包含了Java JFrame、JPanel、JLabel、JButton、JTextField、JPasswordField、JTextArea、JRadioButton、ButtonGroup、JCheckBox、JComboBox、JScrollPane、Color等组件的结合使用,实现了一个简单的图书借阅管理系统,并具有查询数据时显示在一个具有上下左右的滚动条的表格里面。以下是代码及注释: ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class BookBorrowManager extends JFrame implements ActionListener { // 声明需要用到的组件 private JLabel titleLabel, bookNameLabel, authorLabel, publisherLabel, borrowDateLabel, returnDateLabel; private JTextField bookNameTextField, authorTextField, publisherTextField, borrowDateTextField, returnDateTextField; private JTextArea resultTextArea; private JButton borrowButton, returnButton, queryButton; private JRadioButton borrowRadioButton, returnRadioButton; private ButtonGroup borrowGroup; private JCheckBox agreeCheckBox; private JComboBox<String> bookTypeComboBox; private JScrollPane scrollPane; public BookBorrowManager() { // 设置窗口标题 setTitle("图书借阅管理系统"); // 设置窗口大小 setSize(600, 500); // 设置窗口位置 setLocationRelativeTo(null); // 禁止用户改变窗口大小 setResizable(false); // 当关闭窗口时,退出程序 setDefaultCloseOperation(EXIT_ON_CLOSE); // 创建一个面板,用于放置组件 JPanel panel = new JPanel(); panel.setLayout(null); // 设置为绝对布局 // 创建标题标签 titleLabel = new JLabel("图书借阅管理系统"); titleLabel.setBounds(200, 20, 200, 30); // 设置位置和大小 titleLabel.setFont(new Font("微软雅黑", Font.BOLD, 18)); // 设置字体和大小 panel.add(titleLabel); // 添加到面板中 // 创建书名标签和文本框 bookNameLabel = new JLabel("书名:"); bookNameLabel.setBounds(50, 80, 50, 30); panel.add(bookNameLabel); bookNameTextField = new JTextField(); bookNameTextField.setBounds(110, 80, 120, 30); panel.add(bookNameTextField); // 创建作者标签和文本框 authorLabel = new JLabel("作者:"); authorLabel.setBounds(50, 120, 50, 30); panel.add(authorLabel); authorTextField = new JTextField(); authorTextField.setBounds(110, 120, 120, 30); panel.add(authorTextField); // 创建出版社标签和文本框 publisherLabel = new JLabel("出版社:"); publisherLabel.setBounds(50, 160, 60, 30); panel.add(publisherLabel); publisherTextField = new JTextField(); publisherTextField.setBounds(110, 160, 120, 30); panel.add(publisherTextField); // 创建借阅日期标签和文本框 borrowDateLabel = new JLabel("借阅日期:"); borrowDateLabel.setBounds(50, 200, 80, 30); panel.add(borrowDateLabel); borrowDateTextField = new JTextField(); borrowDateTextField.setBounds(140, 200, 90, 30); panel.add(borrowDateTextField); // 创建归还日期标签和文本框 returnDateLabel = new JLabel("归还日期:"); returnDateLabel.setBounds(50, 240, 80, 30); panel.add(returnDateLabel); returnDateTextField = new JTextField(); returnDateTextField.setBounds(140, 240, 90, 30); panel.add(returnDateTextField); // 创建借阅和归还单选按钮 borrowRadioButton = new JRadioButton("借阅"); borrowRadioButton.setBounds(50, 280, 60, 30); returnRadioButton = new JRadioButton("归还"); returnRadioButton.setBounds(120, 280, 60, 30); // 将两个单选按钮放到同一个按钮组里 borrowGroup = new ButtonGroup(); borrowGroup.add(borrowRadioButton); borrowGroup.add(returnRadioButton); panel.add(borrowRadioButton); panel.add(returnRadioButton); // 创建借阅和归还按钮 borrowButton = new JButton("借阅"); borrowButton.setBounds(50, 320, 80, 30); borrowButton.addActionListener(this); // 监听按钮点击事件 returnButton = new JButton("归还"); returnButton.setBounds(140, 320, 80, 30); returnButton.addActionListener(this); // 默认为借阅按钮可用,归还按钮不可用 borrowButton.setEnabled(true); returnButton.setEnabled(false); panel.add(borrowButton); panel.add(returnButton); // 创建查询按钮 queryButton = new JButton("查询"); queryButton.setBounds(420, 80, 80, 30); queryButton.addActionListener(this); panel.add(queryButton); // 创建查询结果文本区域 resultTextArea = new JTextArea(); resultTextArea.setEditable(false); // 设置为只读 // 创建滚动面板,将文本区域添加进去 scrollPane = new JScrollPane(resultTextArea); scrollPane.setBounds(260, 120, 240, 230); // 设置滚动面板的位置和大小,以及滚动条的显示策略 scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); panel.add(scrollPane); // 创建复选框 agreeCheckBox = new JCheckBox("同意借阅协议"); agreeCheckBox.setBounds(50, 360, 120, 30); // 默认为不同意 agreeCheckBox.setSelected(false); panel.add(agreeCheckBox); // 创建下拉框 bookTypeComboBox = new JComboBox<>(new String[]{"计算机科学", "数学", "物理", "化学"}); bookTypeComboBox.setBounds(50, 400, 120, 30); panel.add(bookTypeComboBox); // 将面板添加到窗口中 add(panel); // 显示窗口 setVisible(true); } // 监听按钮的点击事件 @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == borrowButton) { // 如果点击的是借阅按钮 if (agreeCheckBox.isSelected()) { // 如果同意借阅协议 // TODO: 实现借阅功能 JOptionPane.showMessageDialog(this, "借阅成功!", "提示", JOptionPane.INFORMATION_MESSAGE); borrowButton.setEnabled(false); returnButton.setEnabled(true); } else { // 如果没有同意借阅协议 JOptionPane.showMessageDialog(this, "请先同意借阅协议!", "提示", JOptionPane.WARNING_MESSAGE); } } else if (e.getSource() == returnButton) { // 如果点击的是归还按钮 // TODO: 实现归还功能 JOptionPane.showMessageDialog(this, "归还成功!", "提示", JOptionPane.INFORMATION_MESSAGE); borrowButton.setEnabled(true); returnButton.setEnabled(false); } else if (e.getSource() == queryButton) { // 如果点击的是查询按钮 // TODO: 实现查询功能,并将结果显示在文本区域中 resultTextArea.setText("查询结果:\n书名\t作者\t出版社\t借阅日期\t归还日期\nJava入门\t张三\t人民邮电出版社\t2021-01-01\t2021-01-31\nPython编程\t李四\t清华大学出版社\t2021-02-01\t2021-02-28"); } } public static void main(String[] args) { new BookBorrowManager(); } } ``` 通过运行上述代码,你可以看到一个简单的图书借阅管理系统,其中包含了多种Swing组件的使用,以及简单的事件监听处理。你可以根据自己的需求进行修改和完善。

相关推荐

最新推荐

recommend-type

java通过JFrame做一个登录系统的界面完整代码示例

主要介绍了java通过JFrame做一个登录系统的界面完整代码示例,具有一定借鉴价值,需要的朋友可以参考下。
recommend-type

Java实现鼠标拖拽移动界面组件

在Java中,Frame或者JFrame自身已经实现了鼠标拖拽标题栏移动窗口的功能。但是Jframe的样式实在无法令人满意,那你又该怎么实现鼠标拖拽移动窗口的目的呢?今天我们来探讨下
recommend-type

java Swing实现弹窗效果

主要为大家详细介绍了java Swing实现弹窗效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

java实现可视化界面肯德基(KFC)点餐系统代码实例

主要介绍了java肯德基点餐系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

基于关键词搜索结果的微博爬虫(下载即用).zip

基于关键词搜索结果的微博爬虫(下载即用).zip本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,当然也适合小白学习进阶。如果基础还行,可以在此代码基础上进行修改,以实现其他功能。 基于关键词搜索结果的微博爬虫(下载即用).zip本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,当然也适合小白学习进阶。如果基础还行,可以在此代码基础上进行修改,以实现其他功能。 基于关键词搜索结果的微博爬虫(下载即用).zip本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,当然也适合小白学习进阶。如果基础还行,可以在此代码基础上进行修改,以实现其他功能。 基于关键词搜索结果的微博爬虫(下载即用).zip本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,当然也适合小白学习进阶。如果基础还行,可以在此代码基础上进行修改
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【实战演练】增量式PID的simulink仿真实现

# 2.1 Simulink仿真环境简介 Simulink是MATLAB中用于建模、仿真和分析动态系统的图形化环境。它提供了一个直观的用户界面,允许用户使用块和连接线来创建系统模型。Simulink模型由以下元素组成: - **子系统:**将复杂系统分解成更小的、可管理的模块。 - **块:**代表系统中的组件,如传感器、执行器和控制器。 - **连接线:**表示信号在块之间的流动。 Simulink仿真环境提供了广泛的块库,涵盖了各种工程学科,包括控制系统、电子和机械工程。它还支持用户自定义块的创建,以满足特定仿真需求。 # 2. Simulink仿真环境的搭建和建模 ### 2.
recommend-type

训练集和测试集的准确率都99%,但是预测效果不好

即使训练集和测试集的准确率都很高,但是在实际的预测中表现不佳,可能会有以下几个原因: 1. 数据质量问题:模型训练和测试的数据可能存在问题,比如数据标签错误、数据集采样不均衡、数据集中存在异常值等问题,这些问题可能会导致模型在实际预测中表现不佳。 2. 特征工程问题:模型的特征工程可能存在问题,导致模型无法很好地捕捉数据的特征,从而影响预测效果。 3. 模型选择问题:模型的选择可能不合适,比如选择的模型太简单,无法很好地拟合数据,或者选择的模型太复杂,导致过拟合等问题。 4. 超参数调整问题:模型的超参数可能没有调整到最佳状态,需要进行调整。 针对以上可能的原因,可以采取相应的措施进
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。