0
背景信息:我有一個的(5,7)一個GridLayout的一個JFrame,我試圖將圖像添加到(0,0)不清晰的圖像添加到特定的JPanel
我下面這個單元格guide將圖像添加到特定的JPanel。
要顯示在一個JPanel小區中的圖像:
- 列表項
- 把芯片圖像分成一個ImageIcon
- 把那的ImageIcon成一個JLabel經由JLabel的的setIcon(chipIcon)方法
- 通過add(someLabel)方法將JLabel添加到JPanel - 現在JPanel將顯示圖像。
問題
的圖像被添加到的JPanel但似乎圖像被放大了很多,然後加入到JPanel的。
現實
期望
可編譯源代碼
package testing;
import java.io.*;
import java.util.*;
import java.security.*;
import javax.xml.bind.DatatypeConverter;
import java.lang.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class Testing extends JPanel
{
public static class TestPanel extends JPanel
{
TestPanel()
{
int i = 5; // num of rows
int j = 7; // num of cols
PanelHolder = new JPanel[i][j];
setLayout(new GridLayout(i,j));
for (int m=0 ; m<i;m++)
{
for(int n=0;n<j;n++)
{
PanelHolder[m][n] = new JPanel();
add(PanelHolder[m][n]);
}
}
ImageIcon ic1 = new ImageIcon("./src/testing/Ace_Diamond_1_1.png");
JLabel jl1 = new JLabel();
jl1.setIcon(ic1);
PanelHolder[0][0].add(jl1);
}
JPanel [][] PanelHolder;
JLabel DeckLabel;
JPanel DeckPanel;
ImageIcon Deckimg;
private BufferedImage image;
BufferedImage image2;
}
public static class ImagePanel extends JPanel
{
ImagePanel(BufferedImage image)
{
this.i = image;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawImage(i,0,0, getWidth(), getHeight(), this);
}
BufferedImage i;
}
public static void main(String[] args)
{
TestPanel tp = new TestPanel();
JFrame frame = new JFrame();
frame.add(tp);
frame.pack();
frame.setVisible(true);
}
}
下載圖像here
注意:對於一些未知的原因,你必須清理並重建爲你做其他任何更改的解決方案,將堅持舊代碼
感謝我正在尋找的東西! – Computernerd
很高興幫助;) – MadProgrammer