我有一个JPanel,我想保留一个正方形,但是我希望它具有一定的大小,以便它填充其父JFrame中可能的最大空间,但仍保持正方形,即它将JFrame的最短边作为正方形宽度。
我已经搜索了整个网络,检查了所有的布局管理器,似乎没有一个简单的解决方案可以解决这个非常简单的问题。
您可以使用GridBagLayout
和ComponentListener
,
例如:(启发自:https
:
//community.oracle.com/thread/1265752?start=0&tstart=0)
public class AspectRatio {
public static void main(String[] args) {
final JPanel innerPanel = new JPanel();
innerPanel.setBackground(Color.YELLOW);
final JPanel container = new JPanel(new GridBagLayout());
container.add(innerPanel);
container.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
resizePreview(innerPanel, container);
}
});
final JFrame frame = new JFrame("AspectRatio");
frame.getContentPane().add(container);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 600);
frame.setVisible(true);
}
private static void resizePreview(JPanel innerPanel, JPanel container) {
int w = container.getWidth();
int h = container.getHeight();
int size = Math.min(w, h);
innerPanel.setPreferredSize(new Dimension(size, size));
container.revalidate();
}
}
问题内容: 我有一个带有绘制的背景图像的图像和一个布局管理器,其中包含其他较小的图像,所有这些图像都位于内。背景图像非常大,我希望无论在大显示器还是小显示器上都能保持其宽高比。 最终,我希望能够将其及其较小的图像“粘贴”到背景图片中。 我四处寻找资源,似乎许多示例都使用,但我不是。这会带来问题吗?我将在下面发布用于绘制图像的代码,如果我缺少任何信息,请告诉我。 编辑:我应该提一下,我知道长宽比公式
问题内容: 我试图在单个行上具有多个JTextField,但是我不希望它们具有相同的宽度。如何控制宽度并使其中一些比其他更宽?我希望它们一起占总宽度的100%,所以如果我可以使用某种重量的东西,那将是很好的。 我试过了,但是没有道理。 这是一个示例,其中我使用了三行和三个字符串,这些字符串应按列显示: 问题答案: 所有Swing组件均具有首选大小。文本组件的首选大小基于组件的文本。因此,一般情况下
问题内容: 标签标签没有属性’width’,那么我应该如何控制标签标签的宽度? 问题答案: 当然,使用CSS … 不推荐使用该属性,并且应始终使用CSS来控制这些类型的表示样式。
问题内容: 我正在尝试制作绘画程序的项目中。到目前为止,我已经使用Netbeans来创建GUI并设置程序。 到目前为止,我已经能够调用在其中绘制所需的所有坐标,但是我对如何在其中实际绘制感到非常困惑。 在我的代码接近尾声时,我在面板内部进行绘制的尝试失败。 谁能在这样的示例中解释/显示如何使用图形? 我发现的所有示例都创建了一个类并对其进行扩展,JPanel但是我不知道是否可以这样做,因为它是在n
问题内容: 我已在Java控制台上显示了使用Webstart启动的应用程序的输出消息。有没有一种方法可以清除代码中的控制台消息,而不是由用户手动清除消息? 这些消息以大约每秒1000的速度打印,并且似乎使用了过多的内存,我本可以停止打印到控制台,但要求始终保持打印。 问题答案: 您将无法清除该控制台,除非您在该控制台的类上找到了一些句柄(我怀疑您可以访问该句柄)。 您有一个不可避免的要求,即用户需
我对Spring框架是完全陌生的。我有一个任务是在Spring上制作电话簿应用程序。我需要登记和授权,还有我的电话簿。我有两个控制器,第一个是控制授权和注册的UserController 当我尝试进行身份验证或注册时。新用户我有这样的错误: NestedServletException:请求处理失败;嵌套异常是java.lang.IllegalStateException:映射到HTTP路径“HT