Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在一个小程序中显示多个图像_Java_Image_Swing_Applet_Japplet - Fatal编程技术网

Java 在一个小程序中显示多个图像

Java 在一个小程序中显示多个图像,java,image,swing,applet,japplet,Java,Image,Swing,Applet,Japplet,我必须为一个项目构建一个小型Java小程序。我以前从未使用过小程序。因此,我对可用的各种内置函数知之甚少。此小程序的布局如下所示: 屏幕分为3个部分 最上面的部分将有一组按钮和文本框 中间部分和底部部分将显示不同的图像 每次运行程序时,这些图像的大小可能会有所不同(因此需要滚动条以防图像离开屏幕) 到目前为止,我已经成功地对屏幕进行了分区,为每个部分创建了单独的面板,并在其中添加了相应的组件 问题: 底部图像不完全可见。而且,当每个图像不适合面板时,滚动条也不会出现 我尝试使用setSize()

我必须为一个项目构建一个小型Java小程序。我以前从未使用过小程序。因此,我对可用的各种内置函数知之甚少。此小程序的布局如下所示:

  • 屏幕分为3个部分
  • 最上面的部分将有一组按钮和文本框
  • 中间部分和底部部分将显示不同的图像
  • 每次运行程序时,这些图像的大小可能会有所不同(因此需要滚动条以防图像离开屏幕)
  • 到目前为止,我已经成功地对屏幕进行了分区,为每个部分创建了单独的面板,并在其中添加了相应的组件

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

    我尝试使用
    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);
    }
    }}
    
    从中使用的容器开始。它将图像居中放置在滚动窗格中,滚动条显示可靠

    进一步提示
  • “我以前从未使用过applet。”这是不祥的,因为applet比框架更难开发和部署。我建议首先在JFrame中开发这个框架(然后使用从链接启动框架)。只有在看到使用JWS启动的框架之后,才应该考虑使用applet。到那个阶段,任何需要的“转换”都会简单得多
  • 不要在小程序中调用
    setSize(..)
    。大小以HTML格式显示
  • 除非必要,否则不要混合使用Swing和AWT组件,使用所有Swing组件
  • 设置任何组件的大小(首选、最大或最小)通常不是一个好主意
  • 请学习类、方法和属性名称的通用(特别是用于名称的大小写)并一致使用
    从中使用的容器开始。它将图像居中放置在滚动窗格中,滚动条显示可靠

    进一步提示
  • “我以前从未使用过applet。”这是不祥的,因为applet比框架更难开发和部署。我建议首先在JFrame中开发这个框架(然后使用从链接启动框架)。只有在看到使用JWS启动的框架之后,才应该考虑使用applet。到那个阶段,任何需要的“转换”都会简单得多
  • 不要在小程序中调用
    setSize(..)
    。大小以HTML格式显示
  • 除非必要,否则不要混合使用Swing和AWT组件,使用所有Swing组件
  • 设置任何组件的大小(首选、最大或最小)通常不是一个好主意
  • 请学习类、方法和属性名称的通用(特别是用于名称的大小写)并一致使用
    /*<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);
       }
    }}