三国夏侯元让 三国夏侯元让
关注数: 2 粉丝数: 34 发帖数: 719 关注贴吧数: 3
JPanel中添加的JPanel特别小,怎么解决? public class DisplayJFrame{ public static void main(String args[]) {//用于测试 ArrayList<File> files = new ArrayList<File>();files.add(new File("d:/2.jpg")); files.add(new File("d:/large.png")); int index = 0; MyJPanel myJPanel = new MyJPanel(files ,index); MyJToolBar myJToolBar = new MyJToolBar(files ,index); JFrame jFrame = new JFrame(); jFrame.add(myJPanel,BorderLayout.CENTER); jFrame.add(myJToolBar,BorderLayout.SOUTH); double width = Toolkit.getDefaultToolkit().getScreenSize().width; // 得到当前屏幕分辨率的宽 double height = Toolkit.getDefaultToolkit().getScreenSize().height;// 得到当前屏幕分辨率的高 jFrame.setSize((int) width, (int) height);// 设置大小 jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jFrame.setTitle("图片管理器"); jFrame.setResizable(false);// 禁用最大化按钮 jFrame.setLocation(0, 0);jFrame.setVisible(true);}} public class MyJPanel extends JPanel{ public static ImageViewer imageViewer; public MyJPanel(ArrayList<File> files,int index) {imageViewer= new ImageViewer(files,index); add(imageViewer, BorderLayout.CENTER);} } public class ImageViewer extends JPanel { private Image image; private boolean stretched; // 是否可伸缩 private int x; // x,y为图片显示的左上角坐标 private int y; public ImageViewer(ArrayList<File> files,int index) {// 读取图片 try {image = ImageIO.read(files.get(index));} catch (IOException ex) {// handle exception...}} } @Overridepublic void paintComponent(Graphics g) {x = (getWidth() - image.getWidth(this)) / 2;// 使图片居中 y = (getHeight() - image.getHeight(this)) / 2; if (image != null)if (isStretched())g.drawImage(image, x, y, getWidth(), getHeight(), this); elseg.drawImage(image, x, y, this);} public boolean isStretched() {return stretched;} }}
首页 1 2 下一页