有什么办法可以让Jlabel上的图片大小一致,很着急哪位好心帮下忙!谢谢了!
图片的大小数量不等的,但是我想让它们随着图片的数量的多少在固定大小的面板上显示相同的大小!也就是说图片的等比例缩放!
还有一个问题就是如何让这个页面出显滚动条,只显示六幅或者八幅图,在有图片就自动出滚动条!
原码如下:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.applet.*;
public class showImageView extends JApplet {
private JLabel label1, label2, label3, label4, label5, label6, label7;
ImageIcon image1 = createImageIcon("F:/map/040052.jpg");
ImageIcon image2 = createImageIcon("F:/map/040053.jpg");
ImageIcon image3 = createImageIcon("F:/map/040054.jpg");
ImageIcon image4 = createImageIcon("F:/map/040057.jpg");
ImageIcon image5 = createImageIcon("F:/map/040058.jpg");
ImageIcon image6 = createImageIcon("F:/map/040059.jpg");
ImageIcon image7 = createImageIcon("F:/map/main.jpg");
//构造函数
public showImageView () {
ImageIcon imageIcon = new ImageIcon();
label1 = new JLabel("map1",image1,JLabel.CENTER);
label1.setVerticalTextPosition(JLabel.BOTTOM);
label1.setHorizontalTextPosition(JLabel.CENTER);
label2 = new JLabel("map2",image2,JLabel.CENTER);
label2.setVerticalTextPosition(JLabel.BOTTOM);
label2.setHorizontalTextPosition(JLabel.CENTER);
label3 = new JLabel("map3",image3,JLabel.CENTER);
label3.setVerticalTextPosition(JLabel.BOTTOM);
label3.setHorizontalTextPosition(JLabel.CENTER);
label4 = new JLabel("map4",image4,JLabel.CENTER);
label4.setVerticalTextPosition(JLabel.BOTTOM);
label4.setHorizontalTextPosition(JLabel.CENTER);
label5 = new JLabel("map5",image5,JLabel.CENTER);
label5.setVerticalTextPosition(JLabel.BOTTOM);
label5.setHorizontalTextPosition(JLabel.CENTER);
label6 = new JLabel("map6",image6,JLabel.CENTER);
label6.setVerticalTextPosition(JLabel.BOTTOM);
label6.setHorizontalTextPosition(JLabel.CENTER);
label7 = new JLabel("map7",image7,JLabel.CENTER);
label7.setVerticalTextPosition(JLabel.BOTTOM);
label7.setHorizontalTextPosition(JLabel.CENTER);
}
//获得图片路经
/** Returns an ImageIcon, or null if the path was invalid. */
protected ImageIcon createImageIcon(String path) {
return new ImageIcon(path);
}
//创建Jpanel面板添加组件
public Component createComponents(){
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createEmptyBorder(30, 30, 30, 30));
JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setPreferredSize(new Dimension(20, 10));
panel.setLayout(new FlowLayout(FlowLayout.LEFT, 20, 20));
panel.add(label1);
panel.add(label2);
panel.add(label3);
panel.add(label4);
panel.add(label5);
panel.add(label6);
panel.add(label7);
return panel;
}
public static void main (String [] args){
JFrame frame = new JFrame("SwingApplication");
showImageView showimageview = new showImageView();
frame.getContentPane().add(showimageview.createComponents(),BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}