java的Swing里怎么new一条线_java – 在JFrame上绘制一条线
发布日期:2021-10-31 15:52:15 浏览次数:3 分类:技术文章

本文共 1301 字,大约阅读时间需要 4 分钟。

我正在尝试使用图形2D绘制一条线,但然后该线出现在所有的线上

JFrame中的其他组件因此使它们不可见.我该如何解决这个问题?

这是代码:

import javax.swing.*;

import java.awt.*;

import java.awt.geom.*;

class Success extends JFrame{

public Success(){

JPanel panel=new JPanel();

getContentPane().add(panel);

setSize(450,450);

JButton button =new JButton("press");

panel.add(button);

}

public void paint(Graphics g) {

Graphics2D g2 = (Graphics2D) g;

Line2D lin = new Line2D.Float(100, 100, 250, 260);

g2.draw(lin);

}

public static void main(String []args){

Success s=new Success();

s.setVisible(true);

}

}

解决方法:

import javax.swing.*;

import java.awt.*;

import java.awt.geom.*;

class Success extends JFrame{

public Success(){

JPanel panel=new JPanel();

getContentPane().add(panel);

setSize(450,450);

JButton button =new JButton("press");

panel.add(button);

}

public void paint(Graphics g) {

super.paint(g); // fixes the immediate problem.

Graphics2D g2 = (Graphics2D) g;

Line2D lin = new Line2D.Float(100, 100, 250, 260);

g2.draw(lin);

}

public static void main(String []args){

Success s=new Success();

s.setVisible(true);

}

}

进一步提示

>在EDT上创建GUI.有关详细信息,请参见Concurrency in Swing.

>按照@nIcEcOw的建议使用JPanel,覆盖paintComponent(Graphics)而不是paint().再次,首先调用super方法.

>不要扩展框架,只使用一个实例.使用pack()根据组件所需的空间设置大小.

标签:graphics2d,java,swing,jframe

来源: https://codeday.me/bug/20191002/1840679.html

转载地址:https://blog.csdn.net/weixin_39987847/article/details/114567368 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:用java代码写美国时间_如何衡量Java代码所用的时间?
下一篇:android ril.java_Android RIL学习

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月19日 07时19分30秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Qt文档阅读笔记-QPointer的概念及实例(并发多线程实例) 2019-04-27
Qt文档阅读笔记-QScopedPointer解析及实例 2019-04-27
MySQL笔记-MySQL5.7解决root创建用户出现ERROR 1044(42000): Access denied for user 2019-04-27
DM工作笔记-查看会话(session)信息与关闭会话 2019-04-27
MySQL笔记-解决...mysql.sock (13)(两种情况会产生此问题) 2019-04-27
Android逆向笔记-通过字符串定位跳转点 2019-04-27
Web前后端笔记-vue封装http请求添加signature及后端(Java)解析并验证 2019-04-27
Web前后端笔记-通过对称加密算法和信息摘要算法防止数据重放 2019-04-27
Qt笔记-进程只能存在1个(Linux适用,Windows有思路) 2019-04-27
Spring Boot笔记-@Qualifier与@Autowired与@Bean 2019-04-27
Python笔记-uiautomator2环境搭建(安卓模拟器测试环境+windows开发环境) 2019-04-27
Python&Rabbitmq文档阅读笔记-生产者数据直接送入队列消费者消费 2019-04-27
Spring Boot笔记-利用Quartz进行定时任务,利用websocket推送到浏览器(界面为thymeleaf) 2019-04-27
Qt文档阅读笔记-Object Model初步解析 2019-04-27
Linux笔记-centos7编译安装svn 1.14.1 2019-04-27
Linux笔记-SVN(subversion)创建仓库及客户端连接及文件回滚 2019-04-27
Spring Boot文档阅读比较-@SpringBootApplication Auto Configuration 2019-04-27
Spring Boot笔记-@ComponentScan初步解析 2019-04-27
Spring Boot文档阅读笔记-Spring Boot @Bean解析 2019-04-27
VMWare笔记-解决虚拟机能ping通主机能上网,但主机ping不通虚拟机(含思路) 2019-04-27