我尝试制作imageviewer,代码在下面
import javax.swing.*;
import java.awt.event.*;
import java.IO.*;
public class javaImageViewer extends JFrame{
public javaImageViewer(){
setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(200,100);
JButton openButton = new JButton("Open Images");
getContentPane().add(openButton);
openButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
JFileChooser chooser = new JFileChooser(".");
int status = chooser.showOpenDialog(javaImageViewer.this);
if(status == JFileChooser.APPROVE_OPTION){
try{
JFrame frame = new JFrame();
JLabel label = new JLabel(new ImageIcon(chooser.getSelectedFile().toURL()));
frame.add(label);
frame.setSize(500,500);
frame.setVisible(true);
}
catch(Exception e2){
System.out.println("Error"+e2);
}
}
}
});
}
public static void main(String [] args){
javaImageViewer tim = new javaImageViewer();
tim.setVisible(true);
}
}
但是当我从相机打开图像时,它总是显示在帧大小上 我不知道如何使图像符合我的画面尺寸?
答案 0 :(得分:1)
为了使用Full Size放置图像,您可以尝试制作自己的JPanel,覆盖paintComponent方法,并在此方法中使用g.DrawImage,
其他解决方案也许更容易设置JPanel dimesion与你相同的尺寸Image并将此JPanel添加到JScrollPane,这样就会显示滚动条进行导航
答案 1 :(得分:1)
取决于像素的实际大小
1)将Image / BufferedImage
作为Icon/ImageIcon添加到JLabel,然后图片将可调整大小,以实际大小为单位
2)使用Image
调整Image#getScaledInstance(int width, int height, int hints)的大小