「java没有jframe」JAVA没有指针

博主:adminadmin 2023-01-25 18:57:17 279

今天给各位分享java没有jframe的知识,其中也会对JAVA没有指针进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

做java swing 为什么 在JFrame添加的组件都不显示

JFrame默认布局是BorderLayout,如果没有特殊指定其他布局的话,JButton和JTextField的setSize方法是没有用的。如果你想自定义组件的大小和位置,你可以试试setLayout(null)然后用添加组件的setBounds(int x,int y,int width,int height)方法来添加你的组件试试

JAVA JFrame Graphics绘画不显示问题

因为你在JFrame外面绘制图形,会特别短暂。

因为系统会经常调用JFrame默认的paint方法或者repaint方法进行绘制。当你的JFrame的paint方法没有具体实现的时候,也就是空白,这个空白会覆盖掉之前绘制的图形

所以解决办法有2个

第一:用javax.swing.Timer类.定时更新JFrame外面绘制的图形,防止被JFrame的paint覆盖掉

第二:写一个JFrame的子类,重写JFrame的paint方法

个人强烈推荐第二种方法!

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class DemoPaint {

public static void main(String[] args) {

JFrame jf = new MyJFrame();

jf.setBounds(160, 250, 300, 350);

jf.setTitle("测试");

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jf.setVisible(true);

// 说明因为这里的Graphics对象,绘制的图像都是很短暂的,

// 因为JFrame会调用自己的paint repaint等方法,重新绘制

Graphics g = jf.getRootPane().getGraphics();

g.setColor(Color.RED);// 红色

g.fillRect(100, 100, 50, 50);

System.out.println("最开始初始化的时候执行绘制红色矩形");//偶尔会短暂看到

//为了让绘制的图形一直可视.可以使用Timer方法,每隔1000毫秒更新绘制一次.

Timer t = new Timer(1000, new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

Graphics g = jf.getRootPane().getGraphics();

g.setColor(Color.BLUE);// 蓝色

g.fillRect(100, 100, 50, 50);

System.out.println("方法一:Timer任务每隔1000毫秒 执行绘制蓝色矩形");

}

});

t.start();//开始执行Timer

}

}

//写一个JFrame的子类

class MyJFrame extends JFrame {

@Override

public void paint(Graphics g) {//系统自带的paint方法,自动调用

super.paint(g);

g.setColor(Color.WHITE);// 白色

g.fillRect(100, 100, 50, 50);

System.out.println("方法二:系统调用了paint方法 执行绘制了白色矩形");

}

}

输出

最开始初始化的时候执行绘制红色矩形

方法二:系统调用了paint方法 执行绘制了白色矩形

方法一:Timer任务每隔1000毫秒 执行绘制蓝色矩形

方法二:系统调用了paint方法 执行绘制了白色矩形

方法一:Timer任务每隔1000毫秒 执行绘制蓝色矩形

方法一:Timer任务每隔1000毫秒 执行绘制蓝色矩形

方法一:Timer任务每隔1000毫秒 执行绘制蓝色矩形

白色和蓝色矩形位置不一样.

是因为 白色矩形是JFrame里面的位置 100,100(包含了左右边框)

         蓝色矩形是JFrame.getRootPane里面的位置100,100(去掉了左右边框)

java的JFrame类有没有init方法?

你好,在这个类中是没有这个方法的,这个方法一般会自定义为初始化一些窗体的样式等等,比如设置大小,位置,标题。你可以去看看这个类--Applet。希望能帮到你。

java一个继承JPanel的类调用没有出错,就是加入到JFrame没有反应

你My11类中的paint函数的函数名写错了,把public void panit(Graphics g)改成public void paint(Graphics g)即把panit改成paint就行了.

java在一个JFrame的构造函数里创建另一个JFrame,结果另一个JFrame的内容没显示,为什么?

JFrame,JApplet,JDialog都是顶层容器即最大的容器,所以应该不能嵌套在JFrame容器中的,JFrame容器应该只能嵌套比它小的容器或组件,如普通容器JPanel,JScrollPane等容器才能嵌套在JFrame容器中。

关于java没有jframe和JAVA没有指针的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。