标签: imageicon

Java - 在图像的中心绘制文本

我需要在图像的中心写文字.要写的文字并不总是一样的.

我正在使用的代码在这里:

// Here I first draw the image
g.drawImage(img, 22, 15, 280, 225, null);
// I get the text 
String text = photoText.getText();
// Set the text color to black
g.setColor(Color.black);
// I draw the string 
g.drawString(text, 79.5F, 220.0F);
Run Code Online (Sandbox Code Playgroud)

问题是文本不在图像的中心,我该怎么办?

我只需要在水平中心绘制文字.

java graphics swing graphics2d imageicon

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

如何将ImageIcon添加到JFrame?

我正在尝试将图像添加到一个帧但看起来它不起作用.ImageIcon从指定文件创建的图像.图像文件位于java文件存在的seam目录中.

import java.awt.BorderLayout;

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

    public class image {

        public static void main(String args[])
        {
            TimeFrame frame = new TimeFrame();
        }
    }

    class TimeFrame extends JFrame
    {
        //Image icon = Toolkit.getDefaultToolkit().getImage("me.jpg");
        ImageIcon icon = new ImageIcon("me.jpg");
        JLabel label = new JLabel(icon);
        public TimeFrame(){
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setTitle("My Frame");
            setSize(500,400);
            //this.setIconImage(icon);
            add(label,BorderLayout.CENTER);
            setVisible(true);
        }


    }
Run Code Online (Sandbox Code Playgroud)

java swing jlabel jframe imageicon

5
推荐指数
2
解决办法
6万
查看次数

如何将图像图标设置为JButton

我不是很擅长创建Swing应用程序.所以我有问题如何设置图标JButton.

我的项目结构如下所示:

在此输入图像描述

JButtonMainWindow课堂上很简单:它看起来像这样:

tactButton = new JButton("next tact");
Run Code Online (Sandbox Code Playgroud)

我想使用方法将图像设置为此按钮setIcon.我的代码看起来像这样:

tactButton.setIcon(new ImageIcon(getClass().getResource("/images/button_next.jpg")));
Run Code Online (Sandbox Code Playgroud)

但是当我启动应用程序时,我有例外:

java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(ImageIcon.java:205)
    at by.bulgak.conveyor.gui.MainWindow.<init>(MainWindow.java:117)
    at by.bulgak.conveyor.gui.MainWindow$1.run(MainWindow.java:46)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:682)
    at java.awt.EventQueue$3.run(EventQueue.java:680)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:691)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Run Code Online (Sandbox Code Playgroud)

所以我尝试了不同的东西:

  • 把所有的照片在同一文件夹中MainWindow的类
  • 将图片放在项目根文件夹中
  • 尝试类似的东西 tactButton.setIcon(new ImageIcon("/images/button_next.jpg"));

但我有这个例外,或者如果我使用tactButton.setIcon(new ImageIcon("/images/button_next.jpg"));我有简单的按钮没有图像.

最后,我写了我的图像的绝对路径,这很好(但绝对路径不是好主意).你能帮帮我吗?

我看了一个问题如何将图像添加到JButton并试图像那样做.

UPDATE

创建按钮和设置图标的完整代码:

tactButton = new JButton("next tact");
tactButton.setSize(100, …
Run Code Online (Sandbox Code Playgroud)

java swing packaging image imageicon

5
推荐指数
0
解决办法
3万
查看次数

ImageIcon参考麻烦

我希望按值传递ImageIcon实例,因为我们知道默认情况下它是按值传递引用.有没有办法解决这个问题?

ImageIcon img1 = new ImageIcon();
ImageIcon img2 = new ImageIcon();

img1 = img2;   // both share the same reference.......
Run Code Online (Sandbox Code Playgroud)

我尝试使用ImageIcon getImage()setImage().

但实际上我的程序包括将图像写入文件,图像的质量似乎发生了变化.

简而言之,有一种使用函数的方法

img1 = func(img2); // both do not share the same refernce. But the value is copied
Run Code Online (Sandbox Code Playgroud)

至少我怎么能留住上使用完全相同的图像质量getImage()还是setImage()

根据要求提供一些其他信息.

我正在使用的是jpg图像,我将函数完全包含在image = img1.getimage();
img2.setImage(图像);

我维护了一个单独的java类,它保存了包含jpg图像的默认ImageIcon,我正在使用一些类方法从中检索图像

ImageIcon defaulticon = new ImageIcon("d:\\default.jpg");
public void getdefaultimage(ImageIcon img)
{
    img.setImage(defaulticon.getImage());
}

// The class which I maintained specifically for this purpose is a pure java …
Run Code Online (Sandbox Code Playgroud)

java swing pass-by-reference pass-by-value imageicon

4
推荐指数
1
解决办法
340
查看次数

刷新JLabel图标图像

我正在使用JLabel在JFrame中显示图像并设置它的图标.

它第一次工作,但每当我去更改图像时,它仍然是我第一次设置它,所以我尝试了这个并且仍然是相同的结果.

                contentPane.remove(lblPlaceholder);
            lblPlaceholder = null;
            lblPlaceholder = new JLabel("");
            lblPlaceholder.setBounds(10, 322, 125, 32);
            contentPane.add(lblPlaceholder);
            lblPlaceholder.setIcon(new ImageIcon("tempimage.png"));
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它改变它的形象?我也试过没有结果重新绘制JFrame.

java swing jlabel jframe imageicon

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

Java 图像未显示?

尝试显示我的徽标时遇到问题。图片保存在与main.java同一个文件夹中

    ImageIcon im = new ImageIcon("banner.png"); 
    JLabel bam = new JLabel(im); 

    grid.add(bam);
Run Code Online (Sandbox Code Playgroud)

我的语法有问题吗?

java swing image jlabel imageicon

4
推荐指数
1
解决办法
1万
查看次数

如何在JFrame中设置JLabel的边界?

我使用a JLabel来查看图像JFrame.我从一个文件加载它ImageIcon.

JFrame frame = new JFrame(String);
frame.setLocationByPlatform(true);
frame.setSize(500, 500);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel cpu = new JLabel(new ImageIcon(String));
cpu.setLocation(20, 20);
cpu.setSize(20, 460);
frame.add(cpu);
frame.setVisible(true);
Run Code Online (Sandbox Code Playgroud)

我无法设置位置和大小,JLabel因为它是自动完成的.

我必须手动设置这些值,因为我想截断图像(垂直进度条).

java swing jlabel imageicon

4
推荐指数
1
解决办法
2948
查看次数

将图标添加到 jTable 的不同行中

我创建了一个 jTable,用于显示国家/地区名称以及名称旁边的单元格中的国旗图标。如何使用 ImageIcon 类在同一列但不同行中显示每个图标,而不只显示字符串?

以下是我编写的内容,用于在 jTable 中的某个位置显示法国国旗图标,但它只显示字符串

    ImageIcon icon = new ImageIcon("http://www.stoma.fr/assets/images/French_Flag_Small_Icon.jpg");
    jTable.setValueAt(icon, 1, 2);
Run Code Online (Sandbox Code Playgroud)

java swing image jtable imageicon

4
推荐指数
1
解决办法
4536
查看次数

如何在GridLayout(Java)中删除ImageIcons之间的空间

我正在制作一个依赖于网格中的瓷砖的java游戏.我在GridLayout中使用了ImageIcon和JLabel.我在创建GridLayout时将垂直和水平都设置为零,并且所有使用的图像都没有额外的空间.

解决这个问题的最佳方法是什么?

//Sets up the game canvas
private void setUpCanvasPanel(){
    //Adjusts the panel settings
    canvasPanel.setLayout(new GridLayout(Main.diameter, Main.diameter, 0 ,0));

    //Adds panel to masterpanel
    resetc();
    c.gridx = 0;
    c.gridy = 1;
    c.fill = GridBagConstraints.BOTH;
    c.weightx = 1.0;
    c.weighty = 1.0;

    masterPanel.add(canvasPanel, c);
}

//Renders the game canvas
public void renderCanvas(){
    ImageIcon[] iconArray = new ImageIcon[Main.diameter * Main.diameter];
    JLabel[] labelArray = new JLabel[Main.diameter * Main.diameter];
    int count = 0;

    for(int i = 0; i < Main.diameter; i ++){
        for(int j = 0; …
Run Code Online (Sandbox Code Playgroud)

java swing jlabel grid-layout imageicon

4
推荐指数
1
解决办法
2168
查看次数

如何从 JMenuItem (Java Swing) 中删除空图标间隙?

长话短说

有没有办法消除 MenuItem 边框和定义文本之间的图标间隙?即使我没有设置图标,或者将图标设置为空,它也会在我创建菜单项时立即出现。

长版

我们公司开发的 Java 应用程序自 20 世纪 90 年代就存在。在 2000 年代,它被重新设计,并且曾经有那些可怕的、呃我的意思是花哨和丰富多彩的“Synthetica”主题之一。所以现在是时候变得更加严肃和有信誉了,拥有一个更加优雅和现代的 L&F。这就是为什么我从 切换SyntheticaLookAndFeel到内置SystemLookAndFeel.

好吧,这并不像我之前想象的那么容易,但无论如何......我走在正确的道路上;)

我唯一努力去上班的事情就是那些MenuItems。通常在 Java 中,如果您创建一个简单的 Menu 或 PopMenu 并添加一个 JMenuItem,它应该看起来像一个只有文本的普通菜单。在我们的应用程序中,我可以做任何我想做的事情,它总是在每个菜单项的左侧显示一个空格。

我在整个工作区中搜索了任何(错误的)预设配置。我检查了 UIManager 并尝试了将菜单项图标设置为空的不同方法,但我没有发现任何有用的东西。我什至创建了一个新类EmptyIcon,它设置了一个宽度为 1px 的图标,并将其设置为 UIManager 中的预设。

// The empty icon class
public class EmptyIcon implements Icon {
    private int width = 1, height = 0;

    @Override
    public void paintIcon(Component c, Graphics g, int x, int y) {}

    @Override
    public int getIconWidth() {
        return width;
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

java swing jmenuitem imageicon

4
推荐指数
1
解决办法
799
查看次数