gpt4 book ai didi

java - 如何添加滚动条和缩放图像?

转载 作者:行者123 更新时间:2023-12-01 13:09:14 25 4
gpt4 key购买 nike

好吧,基本上我一直在尝试使用 swing、awt 等制作交互式 map 。在直接进入我的项目之前我正在测试一些东西,但我在图像大小和添加滚动条方面遇到了困难,图像是 2000x1000 png,但它似乎只显示中心的中间 500x500 像素(我将提供图像)我也查找了一些滚动条,但它似乎没有做任何事情?基本上感谢帮助,我希望整个图像可以与滚动条一起查看,就像在任何其他窗口中一样。这是我的代码。

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class GuiM extends JFrame{
private JPanel map;
private JPanel buttons;
private JLabel imageLabel;
public GuiM(){
JScrollPane scroller = new JScrollPane(map);
this.getContentPane().add(scroller, BorderLayout.EAST);
map = new JPanel();
map.setLayout(new GridLayout());
buttons = new JPanel();
imageLabel = new JLabel(new ImageIcon(getClass().getResource("MapLI.png")));
map.add(imageLabel);
setLayout(new GridLayout());
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
setResizable(true);
add(map);
add(buttons);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}

public class MainM {

public static void main(String[] args){
GuiM gui = new GuiM();
}
}

这是一些图片
该图像是我想在我的面板中显示的图像 just a test map i'd like to use first

但这就是我得到的。
problem

最佳答案

 JScrollPane scroller = new JScrollPane(map);

由于映射变量为 null,因此上述语句不执行任何操作。摆脱它。

  this.getContentPane().add(scroller, BorderLayout.EAST);

上面的语句没有执行任何操作,因为您稍后将布局更改为 GridLayout,并且滚动条不包含任何要显示的组件。摆脱它。

您想要将滚动条添加到 GUI,而不是 map ,因此代码应类似于:

//add(map);
JScrollPane scroller = new JScrollPane(map); // or add the "imageLabel"
add(scroller);

或者,将标签添加到滚动 Pane 会更容易,无需创建一个面板来容纳标签。

此外,setVisible(true) 语句应移至程序底部,在将组件添加到框架之后且在 pack() 之后。

关于java - 如何添加滚动条和缩放图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23024914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com