public class someGUI extends Component {
/**
* GUI Attributes
*/
private Frame aFrame = new Frame();
private int aFrameWidth = 500, aFrameHeight = 500;
/**
* GUI Setup
*/
public static void setUpGUI() {
someGUI gui = new someGUI();
gui.setUpFrame(Color.white, Color.black);
gui.paint(gui.getFrame().getGraphics());
}
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.black);
g.drawLine(0, 0, 500, 500); // seems to not work at all, ever
g.drawOval(200, 200, 50, 50); // seems to work sometimes, usually vanishes immediately
g.drawRect(400, 400, 50, 50); // same as oval
g.drawString("this is a test!!!", 300, 300); // always works, but vanishes as soon as GUI window is manually minimized and re-opened
System.out.println("paint method has been invoked!");
}
public void setUpFrame(Color pBGColor, Color pFGColor) {
Dimension size = new Dimension(this.getFrameWidth(), this.getFrameHeight());
Color bgColor = pBGColor, fgColor = pFGColor;
// name
this.getFrame().setName("MainFrame");
// title
this.getFrame().setTitle("someApplication");
// sizes
this.getFrame().setSize(size);
this.getFrame().setPreferredSize(size);
// colors
this.getFrame().setBackground(bgColor);
this.getFrame().setForeground(fgColor);
// booleans
this.getFrame().setUndecorated(false);
this.getFrame().setResizable(false);
this.getFrame().setAlwaysOnTop(false);
this.getFrame().setVisible(true);
// functionalities
this.getFrame().addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(-2);
}
});
}
目前,每当我启动该程序时,我就会看到椭圆形/圆形、矩形/正方形和字符串(自从我添加它以来,这条线就一直不见了,我不知道为什么它不画线)。当我,比如说,注释掉创建矩形的行并重新启动程序时,除了打印的字符串出现在框架上后,所有的东西都立即消失了。
此外,我如何更新这些绘画/框架,让绘画保留在框架上?当我最小化+重新打开窗口时,框架中的所有东西都被擦除(除了GUI的其余部分)。一旦这些画消失了,就需要非常不一致的时间/重新启动才能让东西重新出现。
附注:我完全知道我不应该使用java.AWT,我应该在这个特定的项目中使用AWT。
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class someGUI extends Frame {
/**
* GUI Attributes
*/
private int frameWidth = 500, frameHeight = 500;
/**
* GUI Setup
*/
public static void main(String[] args) {
someGUI gui = new someGUI();
gui.setUpFrame(Color.white, Color.black);
}
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.black);
g.drawLine(0, 0, 500, 500); // seems to not work at all, ever
g.drawOval(200, 200, 50, 50); // seems to work sometimes, usually vanishes immediately
g.drawRect(400, 400, 50, 50); // same as oval
g.drawString("this is a test!!!", 300, 300); // always works, but vanishes as soon as GUI window is manually minimized and re-opened
System.out.println("paint method has been invoked!");
}
public void setUpFrame(Color pBGColor, Color pFGColor) {
Dimension size = new Dimension(this.getFrameWidth(), this.getFrameHeight());
Color bgColor = pBGColor, fgColor = pFGColor;
// name
this.setName("MainFrame");
// title
this.setTitle("someApplication");
// sizes
this.setSize(size);
this.setPreferredSize(size);
// colors
this.setBackground(bgColor);
this.setForeground(fgColor);
// booleans
this.setUndecorated(false);
this.setResizable(false);
this.setAlwaysOnTop(true);
this.setVisible(true);
// functionalities
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(-2);
}
});
}
public int getFrameWidth() {
return frameWidth;
}
public void setFrameWidth(int frameWidth) {
this.frameWidth = frameWidth;
}
public int getFrameHeight() {
return frameHeight;
}
public void setFrameHeight(int frameHeight) {
this.frameHeight = frameHeight;
}
}
我只是试图用DrawOval()方法画圆,当我运行程序时,它只显示小正方形。我试图将构造函数添加到Surface类,但它不起作用。这是我制作的代码:
问题内容: 我正在尝试制作绘画程序的项目中。到目前为止,我已经使用Netbeans来创建GUI并设置程序。 到目前为止,我已经能够调用在其中绘制所需的所有坐标,但是我对如何在其中实际绘制感到非常困惑。 在我的代码接近尾声时,我在面板内部进行绘制的尝试失败。 谁能在这样的示例中解释/显示如何使用图形? 我发现的所有示例都创建了一个类并对其进行扩展,JPanel但是我不知道是否可以这样做,因为它是在n
几天前我开始了Java,并在我从图书馆借来的Java教程中对一些Java代码进行了实验和胡闹。 现在我挑战自己,让字符串出现在小程序中的随机位置。我尝试使用更改字符串的x-y坐标,但变量类型不同,我感到困惑。有没有办法让字符串在我每次打开小程序时出现在随机的地方?(稍后我将使用。awt按钮移动字符串。) 下面是我的代码:
问题内容: 我正在尝试使用Java的Graphics2D在屏幕上绘制图像。这是我正在使用的代码。我想看到图像在屏幕上稳定移动。目前,我可以看到图像,但是除非调整窗口大小,否则图像不会移动,在这种情况下,图像确实会移动。我已经勾勒出以下课程。 传递给Tester的Component对象是以下类: 我确保此类仅添加了一个精灵。Sprite类大致如下: 但是,我在屏幕上仅看到固定的Bowser图像。除非
我试图用libGdx和MVC模式制作一个游戏。我有一个我的游戏模型,我打算一直运行,而不是我的渲染方法从应用程序。因此,我在从libgdx扩展Game的类中做了这样的工作:首先,我将连续呈现设置为false,为了调用呈现方法,我使用gamescreen作为模型的监听器。
本文摘自flappy bird娱乐教程的第6天--http://www.kilobolt.com/day-6-adding-graphics---welcome-to-the-necropolis.html 这是我在游戏中使用的纹理图像文件。它是一个256px64px.png文件。 这里是我用来加载纹理的类,以及我希望SpriteBatch绘制的特定的TextureRegion(纹理的一部分)。