相关疑难解决方法(0)

Java:维护JPanel背景图像的纵横比

我有一个JPanel带有彩绘背景图像和一个布局管理器,其中包含其他较小的图像,所有这些都在一个内部JFrame.背景图像非常大,我希望能够保持其纵横比,无论是在大型还是小型显示器上.

最终,我希望能够将我LayoutManager和它的细胞中的较小图像"粘合"到背景图片上.

我四处寻找资源,似乎很多例子都使用了,BufferedImage但我不是; 这会造成问题吗?我将在下面发布我的代码来绘制图像,如果我缺少任何信息,请告诉我.

public class MonitorPanel extends JPanel {
    Image img;
    public MonitorPanel() throws MalformedURLException {
        //add components

        try {
            img = ImageIO.read(new File("src/customer_vlans.jpg"));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
protected void paintComponent(Graphics g)
{
    //paint background image
    super.paintComponent(g);
    //g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
    g.drawImage(img, 0, 0, this);

}

}
Run Code Online (Sandbox Code Playgroud)

编辑:我应该提到我知道宽高比公式: 原始高度/原始宽度x新宽度=新高度 然而,我不知道如何正确使用它对我有利.

java swing background-image jpanel aspect-ratio

19
推荐指数
1
解决办法
3万
查看次数

将JLabel置于JPanel上

我正在使用NetBeans GUI构建器来处理我的布局(我对LayoutManagers很糟糕)并且我正在尝试放置一个简单的JLabel,以便它始终在其父JPanel中居中(水平).理想情况下,即使JPanel被调整大小,这也会保持正确,但是如果这是一个疯狂的编码量,那么在首次创建JPanel时就足以使其居中.

我自己很难尝试处理布局,但由于NetBeans GUI Builder自动生成不可变代码,因此我无法弄清楚如何进行这种中心化,而且我无法在网上找到任何帮助我的东西.

感谢任何能引导我朝正确方向前进的人!

java layout swing netbeans jlabel

14
推荐指数
5
解决办法
3万
查看次数