JOptionPane.showInputDialog的属性

时间: 2023-05-29 18:05:18 浏览: 69
JOptionPane.showInputDialog是一个用于显示一个带有输入框的对话框的方法,它有以下属性: 1. message:显示在对话框中的提示信息。 2. title:对话框的标题。 3. messageType:对话框的类型。可以是JOptionPane.PLAIN_MESSAGE、JOptionPane.INFORMATION_MESSAGE、JOptionPane.WARNING_MESSAGE、JOptionPane.ERROR_MESSAGE或JOptionPane.QUESTION_MESSAGE。 4. icon:对话框的图标。 5. options:对话框中的选项。 6. initialValue:输入框中的初始值。 7. parentComponent:对话框的父组件。 其中,message、title、messageType和parentComponent是必需的属性。
相关问题

用Java语言编写程序使用对象输入/输出流完成用户注册登录界面,User类(用户名,密码)保存在工程文件夹下res\password.txt中 。(仿P204-例题10-12),使用消息框给出相关信息(自学JOptionPane的showMessageDialog方法的使用)

好的,我理解了你的问题。下面是Java代码实现: ```java import java.io.*; import javax.swing.*; class User implements Serializable { private String username; private String password; public User(String username, String password) { this.username = username; this.password = password; } public String getUsername() { return username; } public String getPassword() { return password; } } public class LoginDemo { public static void main(String[] args) { String filePath = "res/password.txt"; File file = new File(filePath); // 创建文件夹 File folder = new File("res"); if (!folder.exists()) { folder.mkdirs(); } try { // 创建文件 if (!file.exists()) { file.createNewFile(); } // 读取用户信息 FileInputStream fileIn = new FileInputStream(file); ObjectInputStream in = new ObjectInputStream(fileIn); User user = (User) in.readObject(); in.close(); fileIn.close(); // 登录对话框 String inputUsername = JOptionPane.showInputDialog("请输入用户名:"); String inputPassword = JOptionPane.showInputDialog("请输入密码:"); // 校验用户名密码 if (inputUsername.equals(user.getUsername()) && inputPassword.equals(user.getPassword())) { JOptionPane.showMessageDialog(null, "登录成功!"); } else { JOptionPane.showMessageDialog(null, "用户名或密码错误!"); } } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } // 注册对话框 String username = JOptionPane.showInputDialog("请输入要注册的用户名:"); String password = JOptionPane.showInputDialog("请输入要注册的密码:"); User newUser = new User(username, password); try { // 写入用户信息 FileOutputStream fileOut = new FileOutputStream(file); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(newUser); out.close(); fileOut.close(); JOptionPane.showMessageDialog(null, "注册成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` 代码中的 `User` 类是一个简单的 JavaBean,包含用户名和密码两个属性。`LoginDemo` 类实现了用户登录和注册的功能。 程序会先读取工程文件夹下的 `res/password.txt` 文件,如果文件不存在则会创建新文件。读取到的 `User` 对象会用于登录校验。 登录校验和注册都使用了 `JOptionPane` 类的 `showInputDialog` 和 `showMessageDialog` 方法。前者用于输入用户名和密码,后者用于展示校验结果和注册成功提示。 注意,需要在类定义前添加 `import java.io.*;` 和 `import javax.swing.*;` 以引入必要的类。

java弹窗表格实现管理员对图书的查询和修改,不用数据库

可以使用Java的Swing组件来实现管理员对图书的查询和修改,并且不用数据库。具体来说,可以使用JTable组件来实现表格的显示和编辑,使用JOptionPane组件来实现弹窗的显示。以下是简单的示例代码: ``` import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.util.ArrayList; public class BookManager { private ArrayList<Book> books; public BookManager() { books = new ArrayList<Book>(); } public void addBook(Book book) { books.add(book); } public ArrayList<Book> searchBook(String keyword) { ArrayList<Book> results = new ArrayList<Book>(); for (Book book : books) { if (book.getTitle().contains(keyword) || book.getAuthor().contains(keyword)) { results.add(book); } } return results; } public void modifyBook(Book book) { int index = books.indexOf(book); if (index != -1) { books.set(index, book); } } public static void main(String[] args) { BookManager manager = new BookManager(); JFrame frame = new JFrame("图书管理系统"); frame.setSize(800, 600); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(new BorderLayout()); JTable table = new JTable(new DefaultTableModel(new Object[] {"书名", "作者", "出版社", "价格"}, 0)); JScrollPane scrollPane = new JScrollPane(table); panel.add(scrollPane, BorderLayout.CENTER); JPanel buttonPanel = new JPanel(); JButton addButton = new JButton("添加图书"); addButton.addActionListener(e -> { String title = JOptionPane.showInputDialog(frame, "请输入书名:"); String author = JOptionPane.showInputDialog(frame, "请输入作者:"); String publisher = JOptionPane.showInputDialog(frame, "请输入出版社:"); double price = Double.parseDouble(JOptionPane.showInputDialog(frame, "请输入价格:")); Book book = new Book(title, author, publisher, price); manager.addBook(book); DefaultTableModel model = (DefaultTableModel) table.getModel(); model.addRow(new Object[] {book.getTitle(), book.getAuthor(), book.getPublisher(), book.getPrice()}); }); buttonPanel.add(addButton); JButton searchButton = new JButton("查询图书"); searchButton.addActionListener(e -> { String keyword = JOptionPane.showInputDialog(frame, "请输入关键字:"); ArrayList<Book> results = manager.searchBook(keyword); if (results.size() == 0) { JOptionPane.showMessageDialog(frame, "未找到相关图书!"); } else { DefaultTableModel model = (DefaultTableModel) table.getModel(); model.setRowCount(0); for (Book book : results) { model.addRow(new Object[] {book.getTitle(), book.getAuthor(), book.getPublisher(), book.getPrice()}); } } }); buttonPanel.add(searchButton); JButton modifyButton = new JButton("修改图书"); modifyButton.addActionListener(e -> { int row = table.getSelectedRow(); if (row == -1) { JOptionPane.showMessageDialog(frame, "请先选择要修改的图书!"); return; } String title = JOptionPane.showInputDialog(frame, "请输入书名:", table.getValueAt(row, 0)); String author = JOptionPane.showInputDialog(frame, "请输入作者:", table.getValueAt(row, 1)); String publisher = JOptionPane.showInputDialog(frame, "请输入出版社:", table.getValueAt(row, 2)); double price = Double.parseDouble(JOptionPane.showInputDialog(frame, "请输入价格:", table.getValueAt(row, 3))); Book book = new Book(title, author, publisher, price); manager.modifyBook(book); DefaultTableModel model = (DefaultTableModel) table.getModel(); model.setValueAt(book.getTitle(), row, 0); model.setValueAt(book.getAuthor(), row, 1); model.setValueAt(book.getPublisher(), row, 2); model.setValueAt(book.getPrice(), row, 3); }); buttonPanel.add(modifyButton); panel.add(buttonPanel, BorderLayout.SOUTH); frame.setContentPane(panel); frame.setVisible(true); } } class Book { private String title; private String author; private String publisher; private double price; public Book(String title, String author, String publisher, double price) { this.title = title; this.author = author; this.publisher = publisher; this.price = price; } public String getTitle() { return title; } public String getAuthor() { return author; } public String getPublisher() { return publisher; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String toString() { return "书名:" + title + ",作者:" + author + ",出版社:" + publisher + ",价格:" + price; } } ``` 这个示例代码实现了一个简单的图书管理系统,其中BookManager类负责管理图书信息,包括添加、查询和修改,Book类代表图书实体,包括书名、作者、出版社和价格等属性。在程序运行时,通过Swing组件构建了一个包含表格和按钮的窗口,用户可以通过按钮进行相应的操作。由于图书信息存储在内存中的ArrayList中,所以不需要使用数据库。

相关推荐

最新推荐

recommend-type

什么是mysql安装配置教程以及学习mysql安装配置教程的意义

mysql安装配置教程
recommend-type

【光伏预测】基于BP神经网络实现光伏发电功率预测附Matlab代码.zip

1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
recommend-type

onlyoffice搭建及与alist使用的view.html

onlyoffice搭建及与alist使用的view.html
recommend-type

android-support-v7-recyclerview 添加错误

1.Project Structure中添加依赖时,容易添加不进去,所以使用本地添加,将android-support-v7-recyclerview放在对应项目的lib文件中,并add as library。如果在build.gradle中出现implementation files('libs\\android-support-v7-recyclerview.jar')就算是添加成功。 2.在布局文件中使用 androidx 的布局控件,在逻辑代码文件中导入androidx相关包。(取代android.support.v7) 3.在gradle.properties文件中,注释android.enableJetifier=true。(# android.enableJetifier=true) 最新way2:
recommend-type

3款正射影像DOM导入CASS插件(测试通过).rar

3款正射影像DOM导入CASS插件(测试通过),带坐标导入,超实用!
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的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。