如何在JFrame中更改java图标

时间:2013-07-23 15:50:11

标签: java swing icons jframe imageicon

好的,所以我一直在研究这个安静。我对java很新,但认为这个很容易。我已经尝试了几乎所有已经在这个网站上回答的方式,但仍然没有运气,通常当我看到这里时,我能够找到适合我所寻找的答案。有谁知道如何更改JFrame顶角的Java图标。我非常肯定它不是我的文件路径,因为我的所有图像都在同一个文件夹中并且它们都工作,这是我唯一无法工作的那个。

这是我的程序主菜单代码的第一部分,除了我尝试添加图标图像外,一切正常。我在下面输入的代码中没有任何内容用于JFrame IconImage,我将其删除,因为它不起作用。因此,如果有人知道如何使用此代码,我将非常感谢,非常感谢您提前!

public class MainFrame
{
private MyPanel main;
private MyPanel2 create;
private MyPanel3 update;
private MyPanel4 find;
JFrame frame = new JFrame("Main Menu:");

public void displayGUI()
{
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel contentPane = new JPanel();
    contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    contentPane.setLayout(new CardLayout());
    main = new MyPanel(contentPane, this);
    create = new MyPanel2(contentPane);
    update = new MyPanel3(contentPane);
    find = new MyPanel4(contentPane);
    contentPane.add(main, "Main Menu");
    contentPane.add(create, "Create Part");
    contentPane.add(update, "Update Part");
    contentPane.add(find, "Find Part");
    frame.setLocation(200, 200);
    frame.setSize(700, 580);
    frame.setContentPane(contentPane);

    frame.setVisible(true);

}

5 个答案:

答案 0 :(得分:14)

我有一个答案给你。首先,确保图像位于文件夹中,而不是包中。接下来,插入以下代码行:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("path/to/image.png"));
ImageIcon icon = new ImageIcon( );
setIconImage(icon.getImage());

此代码从类路径获取图像,并将其作为图像图标返回,然后设置它。这应该将图像图标添加到应用程序。如果没有,请告诉我。

编辑:在你告诉我那不起作用后,我决定对它进行第二次破解...... 首先,将图像放入一个完全独立的文件夹中。我通常称之为/ res。接下来,将图像放在那里。现在,为了装载我采取了完全不同的路线。我决定使用ImageIO而不是默认加载。要加载图像,请使用以下代码:

try {
    frame.setIconImage(ImageIO.read(new File("res/icon.png")));
}
catch (IOException exc) {
    exc.printStackTrace();
}

ImageIO可以更好地加载图片。如果这仍然不起作用,请告诉我。

如果要将其导出为JAR,请将与您在程序中使用的名称相同的文件夹放在与JAR相同的目录中。

答案 1 :(得分:2)

例如,在NetBeans项目中,在src文件夹中创建一个资源文件夹。

将图片(jpg,...)放在那里。

无论您使用ImageIO还是Toolkit(包括getResource), 您必须在图像文件的路径中包含一个前导/:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resources/agfa_icon.jpg"));
setIconImage(image);

如果此代码位于JFrame课程内,则图片会作为标题栏中的图标添加到框架中。

答案 2 :(得分:2)

这对我来说非常好。 只需在您创建 JFrame 后添加此内容。

try {
   Image image = new ImageIcon("/icons/image.jpg").getImage();
   frame.setIconImage(image);
}catch(Exception e){
   System.out.println("Application icon not found");
}

答案 3 :(得分:1)

  1. 首先将图像图标(fav.png)粘贴到同一个包中,
  2. JFrame 构造函数中编写以下代码:
  3.   

    setIconImage(Toolkit.getDefaultToolkit()的getImage(的getClass()的getResource(" fav.png&#34)));

    注意: - fav.png 是图标的名称

答案 4 :(得分:0)

      function get_excerpt(){
      $excerpt = get_the_content();
      $excerpt = preg_replace(" (\[.*?\])",'',$excerpt);
      $excerpt = strip_shortcodes($excerpt);
      $excerpt = strip_tags($excerpt);
      $excerpt = substr($excerpt, 0, 100);
      $excerpt = substr($excerpt, 0, strripos($excerpt, " "));
      $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt));
      $excerpt = $excerpt.'...';
      return $excerpt;
      }

在此代码之后尝试此代码:

  <div class="ro-section ro-padding-top">
<h3 class="ro-hr-heading">Our Latest Blog Articles</h3>
<div class="container">
    <?php
      include('blog/wp-load.php');
      $args = array('showposts' => 3);
      $the_query = new WP_Query( $args );

      function get_excerpt(){
      $excerpt = get_the_content();
      $excerpt = preg_replace(" (\[.*?\])",'',$excerpt);
      $excerpt = strip_shortcodes($excerpt);
      $excerpt = strip_tags($excerpt);
      $excerpt = substr($excerpt, 0, 100);
      $excerpt = substr($excerpt, 0, strripos($excerpt, " "));
      $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt));
      $excerpt = $excerpt.'...';
      return $excerpt;
      }

      echo '<div class="row">';

        if( $the_query->have_posts() ): 
        while ( $the_query->have_posts()) : $the_query->the_post(); 

          echo '<div class="col-md-4">
          <h4 class="ro-service-item-4">'.get_the_title().'</h4>
          <a href="'.get_the_permalink().'">'.get_the_post_thumbnail().'</a>
          '.get_excerpt().'<br /><br />
          <a href="'.get_the_permalink().'"><button type="button" class="btn btn-read_more center-block">Read the article</button></a>
          </div>';

        endwhile; 
        endif; 

      echo '</div><br /><br /><br />';

      wp_reset_query(); 
    ?>
</div>