Java 在一个小程序中显示多个图像
我必须为一个项目构建一个小型Java小程序。我以前从未使用过小程序。因此,我对可用的各种内置函数知之甚少。此小程序的布局如下所示:Java 在一个小程序中显示多个图像,java,image,swing,applet,japplet,Java,Image,Swing,Applet,Japplet,我必须为一个项目构建一个小型Java小程序。我以前从未使用过小程序。因此,我对可用的各种内置函数知之甚少。此小程序的布局如下所示: 屏幕分为3个部分 最上面的部分将有一组按钮和文本框 中间部分和底部部分将显示不同的图像 每次运行程序时,这些图像的大小可能会有所不同(因此需要滚动条以防图像离开屏幕) 到目前为止,我已经成功地对屏幕进行了分区,为每个部分创建了单独的面板,并在其中添加了相应的组件 问题: 底部图像不完全可见。而且,当每个图像不适合面板时,滚动条也不会出现 我尝试使用setSize()
setSize()
,setMinimumSize()
方法,但它不会对输出产生任何更改。你能帮我解决上面的问题吗
这就是我到目前为止所做的:
/*
*/
导入java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
公共类DOSlayout扩展JApplet实现ActionListener{
按钮查看按钮;
面板1顶部;
面板2左侧;
面板3右侧;
标签l1、l2、l3;
图像img;
公共void init(){
设置大小(400400);
setLayout(新的BorderLayout());
顶部=新面板1();
左侧=新面板2();
右侧=新面板3();
Top.setSize(getSize().width,getSize().height/3);
LeftSide.setSize(getSize().width,getSize().height/3);
右侧.setSize(getSize().width,getSize().height/3);
//右侧。设置最小尺寸(新尺寸(40010000));
添加(顶部,BorderLayout.NORTH);
添加(左侧,BorderLayout.CENTER);
添加(右侧,边界布局。南部);
ViewButton=新按钮(“视图”);
l1=新标签(“北”);
l2=新标签(“东”);
l3=新标签(“西部”);
添加(查看按钮);
顶部。添加(l1);
//添加(l2);
//右侧。添加(l3);
ViewButton.addActionListener(此);
}
@凌驾
已执行的公共无效操作(操作事件arg0){
//TODO自动生成的方法存根
}
类Panel1扩展了JPanel{
小组1(){
超级();
}
公共空间涂料(图g){
}
}
类Panel2扩展了JPanel{
小组2(){
超级();
}
私有图像img;
公共void init()
{
img=null;
}
public void loadImage()
{
尝试
{
img=getImage(getCodeBase(),“input1.png”);
}
捕获(例外e){}
}
公共空间涂料(图g)
{
如果(img==null)
loadImage();
g、 drawImage(img,0,0,this);
//g、 drawImage(img,0,0,(int)getBounds().getWidth(),(int)getBounds().getHeight(),this);
}
}
类Panel3扩展了JPanel{
小组3(){
超级();
}
私有图像img;
公共void init()
{
img=null;
//设置大小(400400);
}
public void loadImage()
{
尝试
{
img=getImage(getCodeBase(),“input2.png”);
}
捕获(例外e){}
}
公共空间涂料(图g)
{
如果(img==null)
loadImage();
g、 drawImage(img,0,0,this);
//g、 drawImage(img,0,0,(int)getBounds().getWidth(),(int)getBounds().getHeight(),this);
}
}}
从中使用的容器开始。它将图像居中放置在滚动窗格中,滚动条显示可靠
进一步提示
setSize(..)
。大小以HTML格式显示从中使用的容器开始。它将图像居中放置在滚动窗格中,滚动条显示可靠 进一步提示
setSize(..)
。大小以HTML格式显示/*<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);
}
}}