我有一个imagepanel
类,可以在JPanel上绘制图像。我的问题是jpanel
内的图像看起来很小,我不知道为什么。
我尽我所能,搜索网络甚至一些Java书籍,但是没有成功。我真的需要一些帮助。
我是java的新手。
class Weapons extends JPanel {
private Image weaponimage = weapon1.getImage();
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (image != null)
g.drawImage(weaponimage, 0, 0, getWidth(), getHeight(), this);
}
}
这是图像类。
答案 0 :(得分:6)
'即时修复'是以自然尺寸绘制该元素。例如。改变这个:
g.drawImage(weaponimage, 0, 0, getWidth(), getHeight(), this);
对此:
g.drawImage(weaponimage, 0, 0, this);
这似乎合乎逻辑。应该以自然尺寸绘制“武器”。
..问题是jpanel内的图像看起来很小,
没有。问题似乎是面板本身非常小。图像被绘制为由布局指定的面板的宽度和高度。
要增加(BG)图像的尺寸,请向面板添加组件(布局合理),并以适当的尺寸显示面板。
答案 1 :(得分:1)
可能是你的班级看起来像这样:
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
class Weapons extends JPanel {
// get image according to your application logic
BufferedImage image;
@Override
public void paint(Graphics g){
super.paintComponent(g);
g.drawImage(image, 0, 0, getWidth() - 1, getHeight() - 1, 0, 0, image.getWidth() - 1, image.getHeight() - 1, null);
}
public void setImage(BufferedImage image){
this.image = image;
}
}
class Main {
Weapons weapons;
public void updateWeapons(){
// create image
BufferedImage image = new BufferedImage(100, 100, BufferedImage.TYPE_3BYTE_BGR);
// draw on image
// TO UPDATE WEAPONS GUI, below steps are impotant
weapons.setImage(image);
weapons.repaint();
}
}
您必须覆盖paint()方法。然后你可以设置图像并调用repaint()来更新面板上的图形。
答案 2 :(得分:0)
使用尺寸对象来改变图像的大小
@IBOutlet weak var imageDestinationDirectory: NSScrollView!
...
let destinationText = "Text to display"
imageDestinationDirectory.documentView!.insertText(destinationText)
执行此操作,您可以根据需要延长照片的长度和宽度。