gpt4 book ai didi

java - 在单个小程序中显示多个图像

转载 作者:行者123 更新时间:2023-12-01 18:56:25 26 4
gpt4 key购买 nike

我必须为一个项目构建一个小型 Java 小程序。我以前从未使用过小程序。因此我对各种可用的内置功能不太了解。该小程序的布局如下:

  1. 屏幕分为 3 部分
  2. 最顶部将有一组按钮和文本框
  3. 中间部分和底部将显示不同的图像
  4. 每次运行程序时,这些图像的大小可能会有所不同(因此需要滚动条,以防图像超出屏幕)

到目前为止,我已经成功地对屏幕进行了分区,并为每个部分创建了单独的面板,并在其中添加了相应的组件。

问题:

底部图像不完全可见。当每个图像不适合面板时,也不会出现滚动条。

我尝试使用 setSize()setMinimumSize() 方法,但它不会在输出中产生任何变化。您能帮我解决上述问题吗?

这就是我到目前为止所做的:

/*<applet code=DOSlayout.java width=400 height=400>
</applet>*/

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DOSlayout extends JApplet implements ActionListener {

Button ViewButton;
Panel1 Top;
Panel2 LeftSide;
Panel3 RightSide;
Label l1,l2,l3;

Image img;

public void init() {

setSize(400,400);
setLayout(new BorderLayout());

Top = new Panel1();
LeftSide = new Panel2();
RightSide = new Panel3();

Top.setSize(getSize().width, getSize().height/3);
LeftSide.setSize(getSize().width,getSize().height/3);
RightSide.setSize(getSize().width,getSize().height/3);

//RightSide.setMinimumSize (new Dimension(400, 10000));

add(Top, BorderLayout.NORTH);
add(LeftSide, BorderLayout.CENTER);
add(RightSide, BorderLayout.SOUTH);

ViewButton = new Button("View");


l1 = new Label("North");
l2 = new Label("East");
l3 = new Label("West");


Top.add(ViewButton);


Top.add(l1);
//LeftSide.add(l2);
//RightSide.add(l3);

ViewButton.addActionListener(this);
}


@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub

}

class Panel1 extends JPanel {

Panel1() {
super();
}

public void paint(Graphics g) {
}

}

class Panel2 extends JPanel {

Panel2() {
super();
}

private Image img;

public void init()
{
img = null;
}
public void loadImage()
{
try
{
img = getImage(getCodeBase(), "input1.png");
}
catch(Exception e) { }
}
public void paint(Graphics g)
{
if (img == null)
loadImage();
g.drawImage(img, 0, 0, this);
//g.drawImage(img,0,0,(int)getBounds().getWidth(), (int)getBounds().getHeight(),this);
}

}

class Panel3 extends JPanel {

Panel3() {
super();
}

private Image img;

public void init()
{
img = null;
//setSize(400,400);
}
public void loadImage()
{
try
{
img = getImage(getCodeBase(), "input2.png");
}
catch(Exception e) { }
}
public void paint(Graphics g)
{
if (img == null)
loadImage();
g.drawImage(img, 0, 0, this);
//g.drawImage(img,0,0,(int)getBounds().getWidth(), (int)getBounds().getHeight(),this);
}
}}

最佳答案

ImageViewer中使用的容器开始。它将图像置于滚动 Pane 内的中心,该滚动 Pane 的滚动条可靠地显示。

更多提示

  1. “我以前从未使用过小程序。”这是一个不祥的兆头,因为小程序比框架更难开发和部署。我建议首先在 JFrame 中开发它(然后使用 Java Web Start 从链接启动框架)。只有在看到使用 JWS 启动的框架后,您才应该考虑使用小程序。到那个阶段,所需的任何“转换”都会简单得多。
  2. 切勿在小程序中调用 setSize(..)。尺寸位于 HTML 中。
  3. 除非必要,否则不要混合使用 Swing 和 AWT 组件,而应使用所有 Swing。
  4. 设置任何组件的大小(首选、最大或最小)通常是一个坏主意。
  5. 请学习常用Java naming conventions (特别是用于名称的情况)类、方法和属性名称并一致使用。

关于java - 在单个小程序中显示多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13794843/

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