我面臨一個問題,我無法將一個PNG圖像繪製到我的揮杆GUI到JPanel
(我將其添加到JScrollPane
之後)。問題與繪製PNG文件到揮杆GUI
這是我正在嘗試使用的代碼。
if(processCreated == true){
System.out.println("updating tree of organisms");
processCreated = false;
updateTree();
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
Logger.getLogger(Svet.class.getName()).log(Level.SEVERE, null, ex);
}
tree = new File(path+"/out.png"); //File
try {
treeImage = ImageIO.read(tree); //BufferedImage
tp = new TreePane(treeImage.getScaledInstance(500, 500 ,treeImage.SCALE_SMOOTH)); // my class, implementation below
treeOutput.add(tp); //adding "JPanel" with picture into GUI
treeOutput.repaint();
} catch (IOException ex) {
Logger.getLogger(Svet.class.getName()).log(Level.SEVERE, null, ex);
}
}
此後JScrollPane
保持空。我的代碼有什麼問題嗎?你可以在評論中找到什麼。
這裏是我
TreePane
類
public class TreePane extends JPanel{
Image img;
public TreePane(Image img){
this.img = img;
}
public void paintComponent(Graphics g){
super.paintComponent(g);
int imgX = 0;
int imgY = 0;
g.drawImage(img, imgX, imgY, this);
}
}
「TreePane」的首選大小是(0,0),這就是滾動窗格使用的內容。你可以重寫'getPreferredSize()',但最簡單的就是使用'JLabel'來顯示圖像。 – kiheru
我同意@kiheru:不要刁難 - 使用JLabel,將其放入JScrollPane,並簡單地設置其圖標。 –