「java没有jframe」JAVA没有指针
今天给各位分享java没有jframe的知识,其中也会对JAVA没有指针进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、做java swing 为什么 在JFrame添加的组件都不显示
- 2、JAVA JFrame Graphics绘画不显示问题
- 3、java的JFrame类有没有init方法?
- 4、java一个继承JPanel的类调用没有出错,就是加入到JFrame没有反应
- 5、java在一个JFrame的构造函数里创建另一个JFrame,结果另一个JFrame的内容没显示,为什么?
做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没有指针的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。