如何在java中显示屏幕中心的图像 [英] How to display image at center of screen in java
问题描述
大家好,
我有一个关于java应用程序布局的问题,
我的框架顶部有一个菜单和一个jPanel布局是边框布局。
这个面板是主面板,在中心添加更多jPanel(组件面板也有布局是borderlayout)。
我创建了1个jLabel带图标是图片。
我的问题是如何在屏幕的中心(水平和垂直是中心)显示这张图片(尺寸可以改变)(我的框架) )。
请帮帮我。
提前谢谢
Hi all,
I have a issue about layout in java application,
my frame have a menu on top and a jPanel with layout is border layout.
this panel is main panel and it is added more jPanel(component panel also has layout is borderlayout) at Center.
and I created 1 jLabel with icon is a picture.
My issue is how to display this picture(the size can change) at center(horizal and vertical are center) of screen(my frame).
please help me.
thank in advance
推荐答案
这个例子实现了你所描述的;
This example achieves what you''re describing;
package com.bornander.imagetest;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
public class MainWindow extends JFrame {
private JMenuBar menuBar = new JMenuBar();
private JPanel mainPanel = new JPanel();
public MainWindow(String filename) throws IOException {
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(menuBar, BorderLayout.NORTH);
contentPane.add(mainPanel, BorderLayout.CENTER);
menuBar.setBackground(Color.RED);
menuBar.add(new JButton("Foo"));
mainPanel.setBackground(Color.GREEN);
mainPanel.setLayout(new BorderLayout());
JLabel picLabel = new JLabel(new ImageIcon(ImageIO.read(new File(filename))));
mainPanel.add(picLabel, BorderLayout.CENTER);
setSize(320, 240);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
希望这会有所帮助,
Fredrik
Hope this helps,
Fredrik
这篇关于如何在java中显示屏幕中心的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!