在原始GUI框架内显示图像

时间:2015-05-07 19:45:18

标签: java swing jpanel

我有一个名为SimpleGUI的GUI表单,它只是一个JPanel。我的目标是在JPanel内显示我的网址图片。 当我尝试添加图像时,我没有收到错误,但没有显示任何内容。如果我创建新的JFrame并将JPanel添加到该SimpleGUI,则会显示图像。但后来我开了两个Windows。

如何以原始public class SimpleGUI extends JFrame { private JPanel imagesPanel; //private JFrame mainFrame; public SimpleGUI() throws IOException { super("GUI Page"); setContentPane(imagesPanel); pack(); setVisible(true); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setSize(new Dimension(500, 500)); //mainFrame = new JFrame(); imagesPanel.setLayout(new GridLayout()); imagesPanel.setBounds(0,0,200,200); //mainFrame.add(imagesPanel); //mainFrame.setVisible(true); BufferedImage img1 = null; try { URL url1 = new URL("http://cosplayidol.otakuhouse.com/wp-content/uploads/2012/06/s-1-1.jpg"); URLConnection conn1 = url1.openConnection(); conn1.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11"); InputStream in1 = conn1.getInputStream(); img1 = ImageIO.read(in1); } catch (IOException e) { e.printStackTrace(); } JLabel wIcon = new JLabel(new ImageIcon(img1)); imagesPanel.add(wIcon); } } 形式显示图像? (以下代码)

谢谢!

public class Main {

public static void main(String[] args) {
// write your code here

    try {
        SimpleGUI simpleGUI = new SimpleGUI();
    } catch (IOException ioe){
        ioe.printStackTrace();
    }

  }
}

主要方法:

<html>
  <head>
    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
  </head>
  <body>
    <input id='txtCaseNumber' class="copyValue" placeholder="case number"/>
    <input id='txtDealer' class="copyValue" placeholder="Dealer Name"/>
    Case Number: <span data-inputId="txtCaseNumber"></span>
    Dealer Name: <span data-inputId="txtDealer"></span>

    <script>    
       $(document).ready(function(){
          $(".copyValue").blur(function(){              
            var inputId = $(this).attr('id');               
            var ident = "span[data-inputId='" + inputId + "']";             
            $(ident).html($(this).val());           
        });
      });
   </script>
  </body>
</html>

1 个答案:

答案 0 :(得分:3)

方法顶部的代码应该在最后。这应该解决问题

setContentPane(imagesPanel);
pack();
setVisible(true);

编辑:除了解决问题之外,我应该解释为什么这可以解决问题。问题是当你在方法的开头调用pack()时,没有任何东西被添加到imagePanel,因此getPreferredSize()的返回值将非常小/(0,0)。添加组件后,可以适当调整大小