Show .png image in a JFrame?

前端 未结 3 1758
不知归路
不知归路 2021-01-19 00:01

I am a little stuck. Why wont this work? I just get a error saying:

java.lang.NoSuchMethodError: main

Exception in thread "main"

<
相关标签:
3条回答
  • 2021-01-19 00:01

    Your main method should be:

    public static void main(String[] args)
    
    0 讨论(0)
  • 2021-01-19 00:08

    main needs to be static, and must have an argument of String[], not String.

    To fix this stick everything in a constructor, such as

    import java.awt.*; 
    import javax.swing.*; 
    
    @SuppressWarnings("serial")
    public class ShowPNG extends JFrame
    {    
      private ShowPNG(String arg){
          if (arg == null ) {
            arg = "C:/Eclipse/workspace/ShowPNG/bin/a.png";
        }      
        JPanel panel = new JPanel(); 
        panel.setSize(500,640);
        panel.setBackground(Color.CYAN); 
        ImageIcon icon = new ImageIcon(arg); 
        JLabel label = new JLabel(); 
        label.setIcon(icon); 
        panel.add(label);
        this.getContentPane().add(panel); 
      }
      public static void main(String[] args) {
          new ShowPNG(args.length == 0 ? null : args[0]).setVisible(true); 
      }
    }
    
    0 讨论(0)
  • 2021-01-19 00:25

    This was the finished code:

    import java.awt.*;  
    import javax.swing.*;  
    
    @SuppressWarnings("serial") 
    public class ShowPNG extends JFrame {   
    
      public ShowPNG(String argx) { 
        if ( argx == null ) {
          argx = "a.png";
     }   
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     this.setSize(500,640);
        JPanel panel = new JPanel();  
        //panel.setSize(500,640);
        panel.setBackground(Color.CYAN);  
        ImageIcon icon = new ImageIcon(argx);  
        JLabel label = new JLabel();  
        label.setIcon(icon);  
        panel.add(label); 
        this.getContentPane().add(panel);    
      } 
    
      public static void main(String[] args) { 
          new ShowPNG(args.length == 0 ? null : args[0]).setVisible(true);
      } 
    
    }
    
    0 讨论(0)
提交回复
热议问题