JOptionPane.showInputDialog怎么更改按钮名称
时间: 2023-05-29 10:05:14 浏览: 75
要更改JOptionPane.showInputDialog的按钮名称,您可以使用JOptionPane.showOptionDialog而不是JOptionPane.showInputDialog,并使用自定义按钮标签的选项数组。例如:
```
String[] options = {"Yes, please", "No, thanks"};
int result = JOptionPane.showOptionDialog(null, "Do you want to continue?", "Confirmation", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
if (result == JOptionPane.YES_OPTION) {
// User clicked "Yes, please"
} else if (result == JOptionPane.NO_OPTION) {
// User clicked "No, thanks"
}
```
在这个例子中,我们创建了一个包含自定义按钮标签的字符串数组,并将其传递给JOptionPane.showOptionDialog。在对话框中,将显示这些按钮而不是默认的“是”和“否”按钮。当用户单击按钮时,将返回相应的选项,我们可以使用它来执行相应的操作。
相关问题
JButton searchButton = new JButton("Search Club"); searchButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String keyword = JOptionPane.showInputDialog(null, "Enter club name:"); if (keyword != null && !keyword.isEmpty()) { searchClub(keyword); } else { refreshClubTable(); } clearMemberTable(); } });
这段代码创建了一个JButton实例对象searchButton,用于显示"Search Club"文本的按钮。接着,为该按钮添加了一个ActionListener监听器,用于监听按钮Action事件。当用户点击按钮时,会触Action事件,执行ActionListener中定义的actionPerformed()方法。
在这个例子中,actionPerformed()方法首先调用JOptionPane.showInputDialog()方法,显示一个输入对话框,提示用户输入俱乐部名称的关键字。用户输入的关键字将会存储在字符串变量keyword中。如果用户输入了关键字,且关键字不为空,那么代码将调用searchClub(keyword)方法,用于搜索符合关键字的俱乐部信息并刷新俱乐部表格。否则,代码将调用refreshClubTable()方法,用于刷新俱乐部表格的全部数据。最后,调用clearMemberTable()方法,用于清空会员表格的数据。
这段代码的主要作用是实现搜索俱乐部的功能,并在数据发生变化后刷新相关的表格数据。searchClub()、refreshClubTable()和clearMemberTable()方法可能是自定义的方法,具体实现可能因应用而异。
基本信息管理 基本信息管理包括删除员工信息和查询基础信息等操作。同时,也需要维护部门信息,包括增加、修改、删除和查询等操作。 删除员工信息(Delete Employee) 用户在输入区域中输入需要删除的员工的编号,系统会查询该员工的基本信息并在表单中展示。用户点击“确认”按钮后,系统会提示确认是否删除该员工信息。如果用户确认删除,则执行删除操作;否则取消删除操作。 查询员工信息(Query Employee) 提供两种查询方式:根据姓名查询和根据部门查询。用户可以在输入区域中选择需要查询的方式,并输入相关信息。系统会查询符合条件的所有员工信息并在输出区域中展示。 增加部门信息(Add Department) 在输入区域中展示一个表单,包含需要添加的部门的所有信息(一级部门名称、二级部门名称)。用户可以在表单中填写信息,并点击“确认”按钮完成添加操作。 修改部门信息(Modify Department) 用户先在输入区域中输入需要修改的部门的编号,系统会查询该部门 请用javaGUI与mysql的连接用代码实现上述问题
以下是使用Java GUI和MySQL连接实现基本信息管理的示例代码:
1. 建立数据库连接
在Java程序中,我们需要使用JDBC驱动程序来连接MySQL数据库。因此,我们需要下载并导入MySQL JDBC驱动包。我们还需要在MySQL中创建一个名为"employee_management"的数据库,并在其中创建两张表:employee和department。
在程序中,我们需要定义以下变量:
```java
private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver";
private static final String DB_URL = "jdbc:mysql://localhost:3306/employee_management";
private static final String DB_USERNAME = "root";
private static final String DB_PASSWORD = "password";
private Connection conn = null;
private Statement stmt = null;
```
然后,我们可以在程序初始化时建立数据库连接:
```java
public void init() {
try {
Class.forName(DB_DRIVER);
conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);
stmt = conn.createStatement();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
```
2. 删除员工信息
在Java GUI中,我们可以使用JOptionPane.showConfirmDialog()方法来显示确认对话框。如果用户点击“确认”按钮,则返回值为0,否则为1。
下面是删除员工信息的代码:
```java
public void deleteEmployee(int id) {
try {
String query = "SELECT * FROM employee WHERE id=" + id;
ResultSet rs = stmt.executeQuery(query);
if (!rs.next()) {
JOptionPane.showMessageDialog(null, "该员工不存在!", "错误", JOptionPane.ERROR_MESSAGE);
return;
}
String name = rs.getString("name");
int confirm = JOptionPane.showConfirmDialog(null, "确认删除员工 " + name + " 的信息吗?", "确认", JOptionPane.YES_NO_OPTION);
if (confirm == 0) {
String deleteQuery = "DELETE FROM employee WHERE id=" + id;
stmt.executeUpdate(deleteQuery);
JOptionPane.showMessageDialog(null, "员工 " + name + " 的信息已被删除。", "成功", JOptionPane.INFORMATION_MESSAGE);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
```
3. 查询员工信息
查询员工信息需要根据用户输入的条件构建SQL查询语句,并将查询结果显示在表格中。以下是查询员工信息的代码:
```java
public void queryEmployee(String name, String department) {
try {
String query = "SELECT * FROM employee WHERE 1=1";
if (!name.equals("")) {
query += " AND name LIKE '%" + name + "%'";
}
if (!department.equals("")) {
query += " AND department='" + department + "'";
}
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
int numColumns = rsmd.getColumnCount();
Vector<String> columnNames = new Vector<String>();
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
for (int i = 1; i <= numColumns; i++) {
columnNames.add(rsmd.getColumnName(i));
}
while (rs.next()) {
Vector<Object> row = new Vector<Object>();
for (int i = 1; i <= numColumns; i++) {
row.add(rs.getObject(i));
}
data.add(row);
}
JTable table = new JTable(data, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
JFrame frame = new JFrame("员工信息查询结果");
frame.getContentPane().add(scrollPane);
frame.pack();
frame.setVisible(true);
} catch (SQLException e) {
e.printStackTrace();
}
}
```
4. 增加部门信息
增加部门信息需要使用JOptionPane.showInputDialog()方法来获取用户输入的数据。然后,我们可以使用PreparedStatement对象来执行SQL插入语句,避免SQL注入攻击。
以下是增加部门信息的代码:
```java
public void addDepartment(String parentDepartment, String subDepartment) {
try {
String insertQuery = "INSERT INTO department (parent_department, sub_department) VALUES (?, ?)";
PreparedStatement ps = conn.prepareStatement(insertQuery);
ps.setString(1, parentDepartment);
ps.setString(2, subDepartment);
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "部门 " + parentDepartment + "/" + subDepartment + " 已添加。", "成功", JOptionPane.INFORMATION_MESSAGE);
} catch (SQLException e) {
e.printStackTrace();
}
}
```
5. 修改部门信息
修改部门信息需要先查询数据库中是否存在该部门,如果存在则使用JOptionPane.showInputDialog()方法获取用户输入的新数据,并使用PreparedStatement对象执行SQL更新语句。
以下是修改部门信息的代码:
```java
public void modifyDepartment(int id) {
try {
String query = "SELECT * FROM department WHERE id=" + id;
ResultSet rs = stmt.executeQuery(query);
if (!rs.next()) {
JOptionPane.showMessageDialog(null, "该部门不存在!", "错误", JOptionPane.ERROR_MESSAGE);
return;
}
String parentDepartment = rs.getString("parent_department");
String subDepartment = rs.getString("sub_department");
String newParentDepartment = JOptionPane.showInputDialog(null, "请输入一级部门名称:", parentDepartment);
String newSubDepartment = JOptionPane.showInputDialog(null, "请输入二级部门名称:", subDepartment);
String updateQuery = "UPDATE department SET parent_department=?, sub_department=? WHERE id=?";
PreparedStatement ps = conn.prepareStatement(updateQuery);
ps.setString(1, newParentDepartment);
ps.setString(2, newSubDepartment);
ps.setInt(3, id);
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "部门信息已更新。", "成功", JOptionPane.INFORMATION_MESSAGE);
} catch (SQLException e) {
e.printStackTrace();
}
}
```
以上是使用Java GUI和MySQL连接实现基本信息管理的示例代码。请根据自己的实际需求进行修改和优化。