标签: imageicon

Java选择:以JAR或Base64顺序存储图像?

我写了一个扑克模拟器/赔率计算器.在GUI上,有一些JComboBox用户可以从中选择卡片.

现在,我有这些卡的图像,我也有Base64格式的图像.我试图通过3种不同的方式显示它们.我为每个人编写了一个小程序用于演示目的.

以下是我尝试过的3种方法:

1).将图像存储在JAR文件中:

非常直截了当.图像进入JAR,Java代码从那里读取它们.之后,它创建一个JComboBox包含所有这些并显示它:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.ImageIcon;

public class ImagesFromJAR
{
    private JFrame mainframe;

    public ImagesFromJAR ()
    {
        ImageIcon[] cardslist = new ImageIcon[52];

        for (int i = 0; i < 52; ++i)
        {
            cardslist[i] = new ImageIcon (getClass (). getResource ((this.getImagePath (i))));
        }

        JComboBox cardsbox = new JComboBox (cardslist);
        cardsbox.setSelectedIndex (0);
        cardsbox.setEditable (false);

        this.mainframe = new JFrame ();
        this.mainframe.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
        this.mainframe.setSize (150, 150);
        this.mainframe.setLayout (null);

        cardsbox.setBounds (20, 20, 55, 45); …
Run Code Online (Sandbox Code Playgroud)

java base64 jar imageicon

3
推荐指数
1
解决办法
616
查看次数

JButton Image Icon不显示.png文件

我一直在寻找解决方案,并阅读一些与此问题相关的类似帖子但其中没有一个对我有用.

我正在尝试在JButton上显示图像"b.png",当我滚动按钮时图标会发生变化.

package GUI_JButton;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class Gui extends JFrame {

    private JButton reg;
    private JButton custom;

    public Gui() {
        super("Title goes here");
        setLayout(new FlowLayout());

        reg = new JButton("reg button"); // create reg button
        add(reg); // add reg button to JFrame

        // initialize images
        Icon b = new ImageIcon(getClass().getResource("images/imageA.png"));
        Icon x = new ImageIcon(getClass().getResource("images/imageB.png"));

        custom = new JButton("custom button", b); // create custom …
Run Code Online (Sandbox Code Playgroud)

java swing png embedded-resource imageicon

3
推荐指数
1
解决办法
7481
查看次数

无法显示 ImageIcon - 摆动

public class GUI
{
    JFrame frame;
    JPanel squares[][];


    /* Constructor credited to stackoverflow user ranzy
        http://stackoverflow.com/questions/2535417/chess-board-in-java */
    public GUI()
    {
        frame = new JFrame("Chess");
        squares = new JPanel[8][8];
        frame.setSize(500, 500);
        frame.setLayout(new GridLayout(8, 8));
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 8; j++) {
                squares[i][j] = new JPanel();

                if ((i + j) % 2 == 0) {
                    squares[i][j].setBackground(Color.white);
                } else {
                    squares[i][j].setBackground(Color.orange);
                }
                frame.add(squares[i][j]);
            }
        }

        ImageIcon pawnW = …
Run Code Online (Sandbox Code Playgroud)

java swing intellij-idea imageicon

3
推荐指数
1
解决办法
4161
查看次数

如何从项目文件夹中的 jlabel 上设置图像?

我正在尝试制作一个 Java 桌面应用程序。

我想在 上设置图像JLabel

我正在使用 NetBeans。

从我的项目文件夹中,我的目录结构是:

F:/>MARKET
    |
    |___src
    |
    |___lib
    |
    |___src
    |      |
    |      |__defaultpackage
    |                       |
    |                       demo.java
    |__images
            |
            |
            Logo1.png
Run Code Online (Sandbox Code Playgroud)

我使用了以下代码:

jLabel4 = new JLabel(new ImageIcon("images/Logo1.png"));
Run Code Online (Sandbox Code Playgroud)

它不起作用,我怎样才能得到我的输出?

java swing jlabel embedded-resource imageicon

3
推荐指数
1
解决办法
8978
查看次数

JScrollPane 中相对于 ImageIcon 的鼠标坐标

我正在用 Java 构建一个桌面应用程序。我想获取相对于 JSrollPane 中的图像的鼠标单击的鼠标坐标。JScrollPane screenScroll 包含在带有 BorderLayout 的 JPanel 中。

    final JLabel screenLabel = new JLabel(new ImageIcon(image));
    JScrollPane screenScroll = new JScrollPane(screenLabel);
    screenScroll.getViewport().setBackground(Color.white);

    screenLabel.addMouseListener(new MouseAdapter() {

        @Override //I override only one method for presentation
        public void mousePressed(MouseEvent e) {
            System.out.println("Y'all clicked at: "+e.getX() + ", " + e.getY()+" in the image.");
        }
    });
Run Code Online (Sandbox Code Playgroud)

所以这里的问题是:JPanel 比图像大,JScrollPane 占据了 JPanel 的 100%(看起来不错,我很高兴)但是 mousePressed 事件给了我相对于 JScrollPane/JPanel 的坐标,而不是图像,所以 x 坐标是偏移的(即使 mouseListener 被添加到包含 ImageIcon 的 JLabel)。

希望我解释清楚。如何修改上面的代码以获取相对于图像的坐标?

java swing jscrollpane mouselistener imageicon

3
推荐指数
1
解决办法
2190
查看次数

强制 JMenuItem 大小

当我将图标添加到 时JMenuItem,它会放大到图标的大小。看看这里的区别:

问题

我可以以某种方式强制它缩小到原来的大小吗?如果没有,是否有默认的图标大小JMenuItem(也就是说,当图标完全适合 Test1、2、3 的图标槽时,图标的大小是多少)?

java swing jmenuitem imageicon

3
推荐指数
1
解决办法
2750
查看次数

如何在 Java GUI 中使用鼠标光标拖动图像?

// 我的代码调用要放置在 JPanel 上的目录中的 n 个图像

 public void imageAdder(int n, String name){
    BufferedImage myPic = null;
    for (int i = 0; i <= n; i++){
        try {
        myPic = ImageIO.read(new File("Images/" + name + i + ".jpg"));
        } catch (Exception e){
        System.out.println("no file man cmon");
        }
        JLabel picLabel = new JLabel(new ImageIcon(myPic));
      //  picLabel.setBounds(mouseX, mouseY, 100, 50);
      //  picLabel.addMouseMotionListener(this);
      //  picLabel.addMouseListener(this);
        canvas.add(picLabel);
    }}
Run Code Online (Sandbox Code Playgroud)

我阅读了类 DragSource 以及如何有一种方法可以拖动图像类型的东西,但我不确定这是否适用于我的代码。如果我想用鼠标自由拖动图像怎么办?

java user-interface image drag imageicon

3
推荐指数
1
解决办法
3604
查看次数

加载图标资源错误

在Eclipse中,当我运行代码时,这有效:

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;


   public class Main {

    public static void main(String[] args) {

        JFrame frame = new JFrame("test viewing images");

        frame.setSize(600,300);     
        frame.setLocationRelativeTo(null); // centered on monitor   
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


        /**
         * Menu Bar stuff
         */

        JMenuBar menuBar;
        JMenu menu;
        JMenuItem menuItem;

        // MENU BAR 
        menuBar = new JMenuBar();
        frame.setJMenuBar(menuBar);
        menuBar.setVisible(true);

        // MENU 1
        menu = new JMenu("File");
        menuBar.add(menu);

            // MENU 1 ITEM
            ImageIcon icon = new ImageIcon("src/Action-exit-icon.png");     
            menuItem = new JMenuItem("Exit Program", icon);
            menu.add(menuItem); …
Run Code Online (Sandbox Code Playgroud)

java swing image embedded-resource imageicon

2
推荐指数
1
解决办法
1623
查看次数

打包包含图像的程序

我有大量问题打包我的java程序,其中包含图像到jar转换为可执行文件.图像已用于程序和按钮的背景中.请参阅下图,其中显示了我希望转换为jar的程序.

图片

在此输入图像描述

如您所见,程序运行正常.我创建了相同的程序,没有自定义背景和自定义按钮,不包含图像,我成功将其打包到一个jar中,然后打包成.exe文件.

关于绘制我的背景,我这样做如下:

public void paintComponent(Graphics g) {
    Image img = new ImageIcon("imgs/Bgnd1.jpg").getImage();
    Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
    setPreferredSize(size);
    setMinimumSize(size);
    setMaximumSize(size);
    setSize(size);
    setLayout(null);
    g.drawImage(img, 0, 0, null);
} 
Run Code Online (Sandbox Code Playgroud)

关于使用图像创建我的4个自定义按钮,我正在执行以下操作:

// Prepare rollover images
ImageIcon F1 = new ImageIcon("imgs/btn_f1_not_selected.jpg");
ImageIcon F1rollOver = new ImageIcon("imgs/btn_f1_selected.jpg");

// Create F1 button
final JButton btnF1 = new JButton(F1);
//btnF1.setOpaque(false);
btnF1.setContentAreaFilled(false);
btnF1.setBorder(null);
btnF1.setBorderPainted(false);
btnF1.setFocusPainted(false);
btnF1.setRolloverIcon(F1rollOver);
Run Code Online (Sandbox Code Playgroud)

我尝试将图像放在bin文件夹中,并且为了创建背景,我改变了上述关于图像的声明/获取的方法.

public void paintComponent(Graphics g) {
        String path = "Bgnd11.jpg";
        java.net.URL imgURL = getClass().getResource(path);     
        Image img = new ImageIcon(imgURL).getImage(); …
Run Code Online (Sandbox Code Playgroud)

java swing jbutton embedded-resource imageicon

2
推荐指数
1
解决办法
182
查看次数

如何将ImageIcon添加到JToolBar

我正在尝试在工具栏中添加一个图标,但最好放在哪个位置?我的桌面或应该在项目文件中创建一个新文件或添加所有图片,因为它没有显示,这是我的代码:

 JToolBar toolBar = new JToolBar();
     String[] iconFiles = {"pen-icon","",""};
     String[] buttonLabels = {"New","Open","Save"};
     icon = new ImageIcon[iconFiles.length];
     Obutton = new JButton[buttonLabels.length];

     for (int i = 0; i < buttonLabels.length; ++i) {
      icon[i] = new ImageIcon(iconFiles[i]);
      Obutton[i] = new JButton(icon[i]);
      Obutton[i].setToolTipText(buttonLabels[i]);
      if (i == 3)
        toolBar.addSeparator();
         toolBar.add(Obutton[i]);
    }
Run Code Online (Sandbox Code Playgroud)

java swing jtoolbar imageicon

2
推荐指数
2
解决办法
3585
查看次数