如何从sql方法中分离组件?我需要将这组代码与其余代码分开。我有困难因为它有联系。
Component droplabel = new DropTargetTextArea("test", "testing");
JLabel cellLabel = new JLabel(icon);
JPanel cellPanel = new JPanel(new BorderLayout());
cellPanel.add(cellLabel, BorderLayout.NORTH);
cellPanel.add(droplabel, BorderLayout.CENTER);
gridPanel.add(cellPanel);
////完整代码
connection = getConnection();
try {
statement = (PreparedStatement) connection
.prepareStatement("select image from image");
result = statement.executeQuery();
while (result.next()) {
byte[] image = null;
image = result.getBytes("image");
Image img = Toolkit.getDefaultToolkit().createImage(image);
ImageIcon icon = new ImageIcon(img);
Component droplabel = new DropTargetTextArea("test", "testing");
JLabel cellLabel = new JLabel(icon);
JPanel cellPanel = new JPanel(new BorderLayout());
cellPanel.add(cellLabel, BorderLayout.NORTH);
cellPanel.add(droplabel, BorderLayout.CENTER);
gridPanel.add(cellPanel);
}
}
答案 0 :(得分:0)
基本上你有两个任务:
从底层数据库中检索一组图像。我说set是因为你使用while循环迭代ResultSet。
connection = getConnection();
try {
statement = (PreparedStatement) connection.prepareStatement("select image from image");
result = statement.executeQuery();
while (result.next()) {
byte[] image = null;
image = result.getBytes("image");
}
}
您可以将此代码提取到单独的方法,并使用字节数组来存储检索到的信息。该数组将是该方法的返回值。
创建ImageIcons并在JLabels中使用它们
Image img = Toolkit.getDefaultToolkit().createImage(image);
ImageIcon icon = new ImageIcon(img);
Component droplabel = new DropTargetTextArea("test", "testing");
JLabel cellLabel = new JLabel(icon);
JPanel cellPanel = new JPanel(new BorderLayout());
cellPanel.add(cellLabel, BorderLayout.NORTH);
cellPanel.add(droplabel, BorderLayout.CENTER);
gridPanel.add(cellPanel);
此代码也可以移动到单独的方法中。该方法检索图像数组(或根据您的设置只检索一个)并创建ImageIcon。
答案 1 :(得分:0)
首先提示一下:您应该阅读有关JPA和MVC的内容。 现在转到你的代码:创建一个新类并给她一个名为“DatabaseHelper”的名称,然后将整个JDBC-Code放在像“getAllImages()”这样的方法中,并为Image创建一个容器类(POJO)。第一学期这对你有帮助,但从长远来看你应该使用JPA和MVC。