我正在开发一个显示图像的应用程序,并从数据库中播放声音.我正在尝试决定是否使用单独的JFrame从GUI向数据库添加图像.
我只是想知道使用多个JFrame窗口是否是一个好习惯?
好的,所以我从数据库中获取单个图像没有问题.我用它来把它作为ImageIcon
一个JLabel
;
while (rs.next()) {
images = rs.getString("path");
System.out.println(images + "\n");
System.out.println("TESTING - READING IMAGE");
BufferedImage img = ImageIO.read(new File(images));
System.out.println("img = " + images);
imagelabel = new JLabel(new ImageIcon(img));
imagelabel.setPreferredSize(new Dimension(200, 200));
imageselect.add(imagelabel);
Run Code Online (Sandbox Code Playgroud)
但是,我需要对多个图像执行此操作,并将每个图像分配JLabel
给一个新JPanel
的图像CardLayout
.我知道我需要某种循环,寻找最佳方法的建议!
BufferedImage imgA = ImageIO.read(new File("lmkpackage/images/one.jpg"));
image1 = new JLabel(new ImageIcon(imgA));
image1.setPreferredSize(new Dimension(200, 200));
img1 = new JPanel();
img1.add(image1);
loadcard.add(img1,"1");
cl2.show(loadcard,"1");
BufferedImage imgB = ImageIO.read(new File("lmkpackage/images/two.jpg"));
image2 = new JLabel(new ImageIcon(imgB));
image2.setPreferredSize(new Dimension(200, 200));
img2 = new …
Run Code Online (Sandbox Code Playgroud) 我已经在两个JPanel之间实现了这个非常基本的拖放操作,但这并不能满足我的要求!
public class test extends JFrame {
{ JPanel mainpanel, storypanel, imageselect;
public test(){
mainpanel = new JPanel(new BorderLayout());
storypanel = new JPanel();
imageselect = new JPanel();
MouseListener listener = new MouseAdapter(){
public void mousePressed(MouseEvent e)
{
JComponent c = (JComponent) e.getSource();
TransferHandler handler = c.getTransferHandler();
handler.exportAsDrag(c, e, TransferHandler.COPY);
}
};
int j = 0;
BufferedImage myImages;
JLabel imgselect = new JLabel();
try { myImages = ImageIO.read(new File("four.jpg"));
//myImages[j] = resize(myImages[j]);
imgselect= new JLabel(new ImageIcon(myImages));
System.out.println(j);
imageselect.add(imgselect);
imgselect.addMouseListener(listener);
imgselect.setTransferHandler(new TransferHandler("icon")); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将图像大小调整为50*50像素.我从他们存储在数据库中的路径中获取图像.我没有问题获取图像并显示它们.我只是想知道我应该在什么时候尝试调整图像大小.应该是将图像作为缓冲图像,还是只是尝试调整图标大小?
while (rs.next()) {
i = 1;
imagePath = rs.getString("path");
System.out.println(imagePath + "\n");
System.out.println("TESTING - READING IMAGE");
System.out.println(i);
myImages[i] = ImageIO.read(new File(imagePath));
**resize(myImages[i]);**
imglab[i] = new JLabel(new ImageIcon(myImages[i]));
System.out.println(i);
imgPanel[i]= new JPanel();
imgPanel[i].add(imglab[i]);
loadcard.add(imgPanel[i], ""+i);
i++;
Run Code Online (Sandbox Code Playgroud)
上面的代码检索图像并将其分配给ImageIcon,然后分配给JLabel.我试图通过使用下面的调整大小方法来调整缓冲图像的大小.你们能不清楚为什么这对我不起作用?没有任何错误,只是图像保持原始大小.
public static BufferedImage resize(BufferedImage img) {
int w = img.getWidth();
int h = img.getHeight();
int newH = 50;
int newW = 50;
BufferedImage dimg = dimg = new BufferedImage(newW, newH, img.getType());
Graphics2D g = dimg.createGraphics();
System.out.println("Is this getting here at all " + …
Run Code Online (Sandbox Code Playgroud)