我无法在JFrame上绘制此椭圆形。
static JFrame frame = new JFrame("New Frame");
public static void main(String[] args) {
makeframe();
paint(10,10,30,30);
}
//make frame
public static void makeframe(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel emptyLabel = new JLabel("");
emptyLabel.setPreferredSize(new Dimension(375, 300));
frame.getContentPane().add(emptyLabel , BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
// draw oval
public static void paint(int x,int y,int XSIZE,int YSIZE) {
Graphics g = frame.getGraphics();
g.setColor(Color.red);
g.fillOval(x, y, XSIZE, YSIZE);
g.dispose();
}
框架显示,但其中未绘制任何内容。我在这里做错了什么?
您创建了一个静态方法,该方法不会覆盖paint方法。现在,其他人已经指出,您需要覆盖paintComponent等。但是,为了快速修复,您需要执行以下操作:
public class MyFrame extends JFrame {
public MyFrame() {
super("My Frame");
// You can set the content pane of the frame to your custom class.
setContentPane(new DrawPane());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 400);
setVisible(true);
}
// Create a component that you can actually draw on.
class DrawPane extends JPanel {
public void paintComponent(Graphics g) {
g.fillRect(20, 20, 100, 200); // Draw on g here e.g.
}
}
public static void main(String args[]){
new MyFrame();
}
}
但是,正如其他人指出的那样,在JFrame上进行绘制非常棘手。最好使用JPanel。
问题内容: 我正在尝试制作一个在鼠标本地化处绘制一个圆的简单Java程序,它获取了鼠标的X和Y坐标,但是它没有绘制任何内容,我试图绘制一个String,一个圆和一条线,但是没有任何效果,我稍微修改了代码,但仍然无法正常工作 问题答案: 不要直接在上执行自定义绘画。如果可以,请始终在替代方法上进行操作。 为此,请勿使用无限循环。有用于Mouse Motion收听的
问题内容: 我是一个狂热的程序员,但是今天是我的第一堂Java课。 使用上面的代码,我想在窗口上写一个句子,但是它永远不会写。我究竟做错了什么? 编辑:没关系-油漆一定是油漆。我深表歉意。 问题答案: 在给定的代码中,您想要的是 一个工作示例供您参考:
问题内容: 我正在像这样扩展JFrame: 但是,屏幕上只画了一个正方形,有人知道为什么吗? 我的广场课也看起来像这样: 问题答案: JFrame的contentPane默认使用BorderLayout。当您向其添加一个Square时,默认情况下会添加BorderLayout.CENTER并覆盖以前添加的所有Square。您将需要阅读所有可用于Swing GUI的布局管理器。 例如,从这里开始:在
问题内容: 我正在设计一个程序,该程序在JFrame中包含两个JPanel,一个用于保存图像,另一个用于保存GUI组件(Searchfields等)。我想知道如何将图像绘制到JFrame中的第一个JPanel? 这是我的构造函数的示例代码: } 我试图覆盖JPanel的paintComponent方法来绘制图像,但是当我尝试编写时,这在我的构造函数中导致了一个问题: 因为这将只允许我传递null的
我觉得我经历了我需要做的一切: 创建一个名为paintComponent的图形类,并扩展JComponent 将图形g作为参数,然后执行Graphics2D g2d=(Graphics2D)g 将图形类添加到我的JFrame 我没发现有什么问题,所以我有点困惑 我的代码在这里: 和
我一直在为学校制作一个tic-tac-toe游戏,它通过控制台接收用户输入,然后在GUI中显示当前的板状态。我有所有的代码来确保游戏按预期运行,但是我不知道如何在玩家玩游戏时将X或O图像绘制到棋盘上。当调用构造函数时,它可以很好地绘制电路板,但当我调用我的方法来绘制图像时,它根本没有改变。我对GUI了解不多,非常感谢您的帮助。 我的代码: }