用JAVA设计一个GUI界面设计一个图书查询应用,book.txt文件中至少有5条图书记录,每条图书记录都包括图书的ISBN号,作 者,出版社,定价,页数等。用户输入图书的ISBN号,则在界面中显示该图书的详细信息。
时间: 2024-02-29 15:54:42 浏览: 20
好的,这是一个比较典型的Java GUI应用程序,需要使用Swing或JavaFX框架来实现。以下是我的解决方案:
首先,我们需要一个界面来接收用户输入。我们可以使用一个文本框和一个按钮来实现这个功能,代码如下:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class BookSearchApp extends JFrame {
public BookSearchApp() {
super("图书查询应用");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 100);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
JLabel label = new JLabel("请输入图书的ISBN号:");
JTextField textField = new JTextField(20);
JButton button = new JButton("查询");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 在这里实现查询图书的功能
}
});
panel.add(label);
panel.add(textField);
panel.add(button);
add(panel);
setVisible(true);
}
public static void main(String[] args) {
new BookSearchApp();
}
}
```
接下来,我们需要读取book.txt文件中的图书信息并保存到一个数据结构中。为了方便,我们可以使用一个HashMap来保存每本书的信息,代码如下:
```java
import java.util.*;
import java.io.*;
public class BookSearchApp {
private Map<String, String[]> bookMap;
public BookSearchApp() {
bookMap = new HashMap<String, String[]>();
try {
BufferedReader reader = new BufferedReader(new FileReader("book.txt"));
String line = null;
while ((line = reader.readLine()) != null) {
String[] bookInfo = line.split(",");
bookMap.put(bookInfo[0], bookInfo);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
// ...
}
// ...
}
```
最后,我们需要实现查询图书的功能。当用户点击查询按钮时,我们可以从文本框中获取ISBN号,然后从HashMap中查找对应的图书信息。如果找到了,则将图书信息显示在界面上,否则提示用户未找到该图书。代码如下:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
public class BookSearchApp extends JFrame {
private Map<String, String[]> bookMap;
public BookSearchApp() {
super("图书查询应用");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 100);
bookMap = new HashMap<String, String[]>();
try {
BufferedReader reader = new BufferedReader(new FileReader("book.txt"));
String line = null;
while ((line = reader.readLine()) != null) {
String[] bookInfo = line.split(",");
bookMap.put(bookInfo[0], bookInfo);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
JLabel label = new JLabel("请输入图书的ISBN号:");
JTextField textField = new JTextField(20);
JButton button = new JButton("查询");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String isbn = textField.getText();
String[] bookInfo = bookMap.get(isbn);
if (bookInfo != null) {
StringBuilder sb = new StringBuilder("<html>");
sb.append("<b>标题:</b>").append(bookInfo[1]).append("<br>");
sb.append("<b>作者:</b>").append(bookInfo[2]).append("<br>");
sb.append("<b>出版社:</b>").append(bookInfo[3]).append("<br>");
sb.append("<b>定价:</b>").append(bookInfo[4]).append("<br>");
sb.append("<b>页数:</b>").append(bookInfo[5]).append("<br>");
sb.append("</html>");
JOptionPane.showMessageDialog(null, sb.toString());
} else {
JOptionPane.showMessageDialog(null, "未找到该图书!");
}
}
});
panel.add(label);
panel.add(textField);
panel.add(button);
add(panel);
setVisible(true);
}
public static void main(String[] args) {
new BookSearchApp();
}
}
```
这样,一个简单的图书查询应用就完成了。用户输入图书的ISBN号,程序从book.txt文件中读取图书信息并保存到HashMap中,然后根据用户输入的ISBN号在HashMap中查找对应的图书信息,最后在界面上显示该图书的详细信息。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)