【发布时间】:2014-11-17 01:39:37
【问题描述】:
我目前正在尝试创建一个 Java GUI 程序,该程序根据终端中给出的参数生成图像。例如,如果我在命令行java Draw Image1 中获得参数,我想为其他人绘制我的图像 1 等。如何获取命令参数并在paintComponent 中使用它?这是我在下面尝试做的一个示例:
import javax.swing.*;
import java.awt.*;
public class Draw extends JPanel
{
public Draw()
{
this.setSize(800,800);
JPanel drawing = new JPanel();
this.add(drawing);
this.setVisible(true);
}
protected void paintComponent(Graphics g)
{
if (args[0].equals("Image1")) // won't work
{
super.paintComponent(g);
Image myImage = Toolkit.getDefaultToolkit().getImage("image/myimage.jpg");
g.drawImage(myImage, 0, 0, this);
}
else
{
// draw image 2
}
}
public static void main(String[] args)
{
// create new Jframe
JFrame frame = new JFrame("Draw");
frame.add(new Draw());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setVisible(true);
}
}
【问题讨论】:
-
Image myImage = Toolkit.getDefaultToolkit().getImage("image/myimage.jpg");永远不要尝试在绘制方法中加载资源。该图像可以在构造类时加载,然后存储为类属性(可在绘画中访问)。
标签: java swing user-interface awt command-line-arguments