Tag: imageicon

显示Windows 7的ImageIcon png文件的正确路径是什么?

我想测试一个带有简单png图像的程序。 我写了一个简短的程序来做到这一点,但我似乎无法让路径正确。 我已经检查,再次检查,重新检查,并检查了我的路径名称四倍,但没有正确,但无论我做什么,这个图像都不会显示。 我使用了Oracle在ImageIcon文档( creaetImageIcon() )中编写的一个简短类来完成此任务,但它似乎没有帮助。 我将在下面发布整个程序,因为它很短。 package practiceImages; import java.awt.BorderLayout; import java.awt.Toolkit; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; public class ImageIconGUITest { public static void main(String[] args) { ImageIconGUITest gui = new ImageIconGUITest(); gui.display(); } private ImageIcon createImageIcon(String path, String description) { java.net.URL imgURL = getClass().getResource(path); if (imgURL != null) { return new ImageIcon(imgURL, […]

在java中切换imageIcon?

我有许多在窗口中移动的平面(线程),我想根据平面的方向切换ImageIcon。 例如:如果一个平面向右移动,则该平面的imageIcon是正确的,然后平面向左移动,交换该平面的imageIcon。 我怎么能在paintComponent方法中做到这一点? 对不起,我的英语不好。

从包含透明像素的图像创建自定义JButton

阅读编辑2,了解我实际上缺少的内容 我目前正在尝试使用在photoshop中创建的具有alpha参数的图像创建一些自定义JButton。 到目前为止,覆盖paint()方法绘制图像的工作方式是绘制按钮显示正确的图像。 但是,我想通过使其形状(可点击区域)与图像上的可见像素相同来改进它(现在,如果我绘制按钮的边框,它就是一个正方形)。 有没有一种简单的方法可以做到这一点,还是我必须解析图像并找到alpha像素来制作自定义边框? 我必须覆盖哪些方法才能使其按照我想要的方式工作? 另外,我将在稍后提出的另一个问题是:使用某种算法来更改图像的颜色会更好,这样看起来就像人们点击它时被点击一样,或者我最好创建第二个按钮处于活动状态时的图像和绘图? 编辑:我刚刚读到一些其他问题,我应该重新定义paintComponent()而不是paint(),我想知道为什么重新定义paint()工作正常? 编辑2:我改变了一切,以确保我的JButton是使用带图标的默认构造函数创建的。 我要做的是获取点击注册位置的X和Y位置并抓住该位置的图标像素并检查其alpha通道以查看它是否为0(如果是,则不执行任何操作,否则执行此操作应该采取的行动)。 问题是,alpha通道始终返回255(蓝色,红色和绿色在透明像素上为238)。 在其他像素上,一切都返回它应该返回的值。 这是一个示例(如果需要,可以使用另一个图像尝试)重新创建我的问题: public class TestAlphaPixels extends JFrame { private final File FILECLOSEBUTTON = new File(“img\\boutonrondX.png”); //My round button with transparent corners private JButton closeButton = new JButton(); //Creating it empty to be able to place it and resize the image after the button size […]

在Java中镜像动画gif加载 – ImageIcon

所以我有一个动画gif,我加载到ImageIcon像这样: Image image = new ImageIcon(“image.gif”).getImage(); 我可以用它绘制它: g.drawImage(image, x, y, null); 我知道我可以使用AffineTransform动态镜像它,但是我需要能够在加载后水平镜像它,这样我可以在需要时绘制镜像,而不会在每次重绘时转换它。 有没有办法使用swing / awt来做到这一点? 一个可以做到这一点的图书馆也将是一个巨大的帮助。

在Java Swing中显示图像

public class MinesweeperMenu extends MinesweeperPanel{ private JPanel picture = new JPanel(); private JButton play = new JButton(“Play”); private JButton highScores = new JButton(“High Score and \nStatistics”); private JButton changeMap = new JButton(“Create Custom \nor Change Map”); private JButton difficulty = new JButton(“Custom or\nChange Difficulty”); private JButton user = new JButton(“Change User”); Image img; public MinesweeperMenu() […]

Java GIF动画无法正确重新绘制

我正在尝试为GIF图像制作动画。 动画有效,但画面效果不佳。 它显示如下(非动画截图): 在图像中,尾巴像这样摇晃: 如您所见,图像不能很好地重现。 我不想使用JLabel,但是没有正常工作,所以当我的图像没有动画时我就按照这个问题 。 我的代码是这样的: public void draw(JPanel canvas, Graphics2D g2d, int x, int y) { getFrontImage().paintIcon(canvas, g2d, x, y); } 检索和保存图像的位置如下: ImageIcon gif = new ImageIcon(getClass().getResource(filename)); 在JPanelcanvas中,我制作了一个paint方法和一个每10ms重绘一次的计时器线程。 这适用于除GIF之外的所有事情。 谁可以帮我这个? —编辑 我很抱歉误会,我已将图像更新为我实际使用的图像。 我希望得到正确答案并不是太麻烦……

如何保存程序的状态然后加载它?

我正在尝试保存并重新加载我的Swing程序的状态,在这种情况下是一个扫雷游戏。 我的董事会代码如下。 package mines; import java.awt.Graphics; import java.awt.Image; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Random; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JPanel; public class Board extends JPanel { public static void main (String[] args) {} private final int NUM_IMAGES = 13; private final int CELL_SIZE = 15; private final int COVER_FOR_CELL = 10; private final […]

如何从文件夹中的图像将图标设置为JLabel?

每当从JComboBox中选择一个项目时,我都试图从图像文件夹中将图标设置为JLabel。 JComboBox中的项目名称和文件夹中图像的名称相同。 因此,无论何时从JComboBox中选择项目,都应将具有相同名称的相应图像设置为JLabel的图标。 我想做这样的事情。 private void cmb_movieselectPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt){ updateLabel(cmb_moviename.getSelectedItem().toString()); } protected void updateLabel(String name) { ImageIcon icon = createImageIcon(“C:\\Users\\xerof_000\\Pictures\\tmspictures\\” + name + “.jpg”); if(icon != null){ Image img = icon.getImage(); Image newimg = img.getScaledInstance(lbl_pic.getWidth(), lbl_pic.getHeight(), java.awt.Image.SCALE_SMOOTH); icon = new ImageIcon(newimg); lbl_pic.setIcon(icon); lbl_pic.setText(null); } else{ lbl_pic.setText(“Image not found”); lbl_pic.setIcon(null); } } protected static ImageIcon createImageIcon(String path) […]