eclipse中windowbuilder绘图,根据一定条件查询并返回数据库数据的java怎么写
时间: 2024-02-25 21:58:35 浏览: 23
要实现这个功能,你需要先将查询数据的代码编写好,然后将其与绘图代码结合起来。
以下是一个简单的示例代码,它使用Java Swing和MySQL数据库,演示了如何在窗体中绘制一个简单的图形,并根据数据库中的数据进行染色:
```java
import java.awt.Color;
import java.awt.Graphics;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyWindow extends JFrame {
private static final long serialVersionUID = 1L;
private MyPanel myPanel;
public MyWindow() {
super("My Window");
myPanel = new MyPanel();
add(myPanel);
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
MyWindow myWindow = new MyWindow();
myWindow.setVisible(true);
}
private class MyPanel extends JPanel {
private static final long serialVersionUID = 1L;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
try {
// 连接数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase", "root", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM mytable");
int x = 0;
int y = 0;
int width = 50;
int height = 50;
while (rs.next()) {
int data = rs.getInt("mydata");
// 根据数据染色
if (data > 50) {
g.setColor(Color.GREEN);
} else {
g.setColor(Color.RED);
}
// 绘制矩形
g.fillRect(x, y, width, height);
x += width + 10;
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
```
在这个示例代码中,我们新建了一个`MyWindow`类,它继承自`JFrame`,并包含了一个`MyPanel`类,它继承自`JPanel`。在`MyPanel`中,我们重写了`paintComponent`方法,该方法在绘制面板时被调用。在该方法中,我们首先连接到MySQL数据库,并查询`mytable`表中的数据。然后,我们根据数据的值设置矩形的颜色,并绘制该矩形。
需要注意的是,这个示例代码仅作为参考,实际使用时需要根据具体的需求进行修改。例如,你可能需要根据用户的输入来查询数据库,或者需要使用其他的数据库或绘图库。