Java 分开两组代码
如何将组件与sql方法分离?我需要将这组代码与其他代码分开。我有困难,因为它链接Java 分开两组代码,java,components,Java,Components,如何将组件与sql方法分离?我需要将这组代码与其他代码分开。我有困难,因为它链接 Component droplabel = new DropTargetTextArea("test", "testing"); JLabel cellLabel = new JLabel(icon); JPanel cellPanel = new JPanel(new BorderLayout()); cellPanel.add(cellLabel, Bord
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);
}
}
这里基本上有两个任务:
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);
此代码也可以移动到单独的方法。该方法检索图像数组(或仅检索一个,具体取决于您的设置)并创建ImageIcon第一个小提示:您应该阅读JPA和MVC。
现在来看看你的代码:创建一个新类,给她一个像“DatabaseHelper”这样的名字,然后把你的整个JDBC代码放在一个像“getAllImages()”这样的方法中,并为图像创建一个容器类(POJO)。对于第一个学期,这应该对你有帮助,但从长远来看,你应该使用JPA和MVC。阅读关于
MVC
模式的内容,这将挽救你的生命。另外,为什么图像存储在数据库中而不仅仅是磁盘上?我需要将它们存储在数据库中。这是分配的一个要求模型视图控制模式
在这里会很有帮助,但我实现分离的第一步是为主要GUI组件创建一个单独的类,然后有一个方法允许您更新GUI上的当前图标,并从检索图像的位调用该图标。这将为您提供模式的模型
和视图
组件。然后,控制器的作用应该变得更加明显。但是,它无法识别这行代码中的变量映像,映像img=Toolkit.getDefaultToolkit().createImage(映像);如果我制作一个标签数组并将图像加载到其中,有人会解决这个问题吗?还有人知道如何实现这一点吗?如果将代码拆分为两个方法,第二个方法可能类似于private void addLabels(byte[]images){…}
。在这个方法中,您可以执行类似于Image img=Toolkit.getDefaultToolkit().createImage(images[0])的操作代码>这不是很好的代码,但应该会让您对我的想法有一个印象。