python图形界面教程_图形教程

python图形界面教程

众所周知,我们可以借助Java库制作游戏,这些库为我们提供制作游戏所需的图形。 因此,今天我将开始一个关于Java图形的非常新的部分。 我之前曾发表过有关如何制作所得税计算器的文章 。

首先要满足一些先决条件:

-您应该对Java语法有个不错的主意,因为我不会教它。
-您应该已经下载了Eclipse(任何人都可以执行,例如Indigo,Galileo,Ganymede等)
–您应该下载acm.jar文件,并将其作为外部jar文件包含到您的项目中。

注意 :如果可以下载Eclipse或从命令提示符执行。 如果从命令提示符执行,请不要忘记将acm.jar的路径输入到Environment Variable-> CLASSPATH ,否则将引发错误。

AWT(抽象窗口工具包)提供了可在Java小程序中使用的GUI组件,但是这里我们还将使用acm.jar库。

java.awt软件包和acm。* / acm.program。 *软件包包含GUI组件。

现在,我们应该描述将用于构建GUI的组件。

帆布

Canvas(在java.awt中)/ GCanvas(acm。*)是一个类,它在后台提供画布以在其上添加对象。 这是由“图形”程序自动创建的。

GCanvas的一些方法是:

add(object):将对象添加到画布上。

add(object,x,y) :将对象添加到指定的位置(x,y)。

add(object,position) :将对象添加到指定的位置(SOUTH,NORTH,EAST,WEST)。

remove(object) :删除该特定对象

removeAll() :从画布上删除所有对象。

setBackground(color) :设置画布的背景。

要了解有关GCanvas方法的更多信息, 请单击此处 。

要了解Canvas方法, 请单击此处 。

容器:

您可以使用add方法将GUI组件添加到容器中。

有两种类型的容器WindowPanel

视窗

窗口是一个独立于其他容器的容器。 窗口有两种类型:“ 框架”和“ 对话框”框架是带有标题和角的窗口,可以调整大小,而对话框是简单的窗口。 我们可以移动对话框,但不能调整其大小。

面板

面板必须包含在另一个容器或Web浏览器窗口中。 您必须将面板放入要显示的窗口中。

定位尺寸调整 组件

容器中组件的位置和大小是借助布局管理器确定的。 容器具有布局管理器的实例。 每当容器需要在其内部调整组件的大小或位置时,它都会调用布局管理器并进行必要的处理。

在布局管理器类中定义了不同的方法来实现重新定位和调整大小。

镜框

框架Window的子类。 FrameContainer类继承其属性,因此您可以使用add方法将组件添加到Frame中

Frame的默认布局是BorderLayout ,认为可以通过setLayout方法进行更改。

构造函数Frame (String)创建一个新的不可见Frame对象,其标题由String指定。

范例:

//Program using the acm library
import javax.swing.*;
import java.awt.*;
import acm.program.*;public class FrameExample extends GraphicsProgram{private JFrame f;public FrameExample(){f = new JFrame("Code 2 Learn");}public void launchMyFrame(){f.setSize(300,300);f.setBackground(Color.blue);f.setVisible(true);}public void init(){FrameExample fe=new FrameExample();fe.launchMyFrame();}
}
//Program using the w/o acm library
import java.awt.*;public class FrameExample{ private Frame f;public FrameExample(){f = new Frame("Code 2 Learn");}public void launchMyFrame(){f.setSize(300,300);f.setBackground(Color.blue);f.setVisible(true);}public static void main(String args[]){FrameExample fe=new FrameExample();fe.launchMyFrame();}
}

面板:

面板 (如Frame)为您提供了附加GUI组件的空间。 每个面板可以有自己的布局管理器。

创建面板后,我们必须将其添加到WindowFrame中 。 这可以使用add()方法来实现。

范例:

//Program using the acm library
import javax.swing.*;
import java.awt.Color;
import acm.program.*;public class FrameExample extends GraphicsProgram{private JFrame f;private JPanel p;public FrameExample(){f = new JFrame("Code 2 Learn");p=new JPanel();}public void launchMyFrame(){f.setSize(300,300);f.setLayout(null); //Override the default layout managerp.setSize(300, 50);p.setBackground(Color.BLACK);f.add(p);f.setVisible(true);}public static void main(String args[]){FrameExample fe=new FrameExample();fe.launchMyFrame();}
}
/Program using the w/o acm library
import javax.swing.*;
import java.awt.*;public class FrameNPanel{private Frame f;private Panel p;public FrameNPanel(){f = new Frame("Code 2 Learn");p=new Panel();}public void launchMyFrame(){f.setSize(300,300);f.setLayout(null); //Override the default layout managerp.setSize(300, 50);p.setBackground(Color.BLACK);f.add(p);f.setVisible(true);}public static void main(String args[]){FrameNPanel fe=new FrameNPanel();fe.launchMyFrame();}
}

我已经解释了可以放置物品的面板,框架和窗户。 但是我们在上一教程中没有设置窗口,面板或框架的布局,而是使用了默认布局。
现在,我们将了解可用于使用和操作GUI的布局上的不同类型。

容器布局:

容器中每个组件的布局均由布局管理器控制 。 每个容器(例如PanelFrames )都有一个与之关联的默认布局管理器,我们可以更改它。

布局管理器:

Java编程语言包含以下布局管理器:

  • FlowLayout – FlowLayout是PanelApplet的默认布局管理器。 当组件放置在具有布局管理器作为FlowLayout的容器中时,组件将彼此相邻放置以形成流(就像直线上的学生一样)
  • BorderLayoutBorderLayout是窗口, 对话框和框架的默认布局管理器。 应用BorderLayout时,将根据给出的选择使组件显示在边界上,即WEST,SOUTH,NORTH,CENTER或EAST。
  • GridLayout –此布局管理器提供了将组件放置在容器上的灵活性
  • CardLayout –它使用两个或多个共享同一显示的组件(如下所示)。
  • GridBagLayoutGridBagLayout是Java环境中最灵活,最复杂的布局管理器。 它放置的是组件以及行和列,因此允许我们执行行跨度或列跨度以便放置在组件上。

注意 :

默认情况下,所有Window类都使用BorderLayout管理器,而Panel类则使用FlowLayout管理器。 名为setLayout()的函数用于更改容器的布局(在示例中如下所示)。

一个简单的FlowLayout示例:

import java.awt.*;public class GUI2 {private Frame f;private Button but1;private Button but2;public GUI2(){f = new Frame("CODE 2 LEARN");but1 = new Button("Like Code 2 Learn");but2 = new Button("Don't Like Code 2 Learn");}public void generateGUI(){f.setLayout(new FlowLayout());f.add(but1);f.add(but2);f.pack();f.setVisible(true);}public static void main(String[] args) {GUI2 launchgui= new GUI2();launchgui.generateGUI();}
}

参考: Java Code Tutorial – 1和Java Graphics Tutorial -II,来自我们的JCG合作伙伴 Farhan Khwaja,位于Code 2 Learn博客上。


翻译自: https://www.javacodegeeks.com/2012/02/graphics-tutorial.html

python图形界面教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356503.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java创建树结构_Java学习之XML-017

如果想快速有效的学习,思想核心是“以建立知识体系为核心”,具体方法是“守破离”。反复练习直到熟练。————百战程序员1.0 XML1.1 XML 简介XML 指可扩展标记语言。XML 被设计用来传输和存储数据。1. 什么是XMLXML 指可扩展标记语言(EXten…

WebDriver API元素的定位

一、以下截图为用FireBug定位的用火狐(Firefox)浏览器打开的百度首页,下面所讲述的八种定位方法,就是以该截图中的百度输入框为例子。 ①、FireBug是Firefox浏览器下的开发类插件,通过该插件可以查看HTML、CSS、Javascript控制台、网络状况监…

findbugs-dea_FindBugs和JSR-305

findbugs-dea假设该组开发人员在大型项目的各个部分上并行工作-一些开发人员在进行服务实现,而其他开发人员在使用该服务的代码。 考虑到API的假设,两个小组都同意服务API,并开始单独工作。 您认为这个故事会有幸福的结局吗? 好吧…

带有ActiveMQ和Maven的JMS Sender应用程序

我们已经看到了如何使用ActiveMQ和Maven创建JMS Receiver应用程序 。 让我们看看我们如何类似地创建JMS Sender应用程序 。 web.xml与创建接收器应用程序时使用的相同&#xff1a; <web-app xmlns"http://java.sun.com/xml/ns/javaee"xmlns:xsi"http://www…

mysql aes密钥大于16位_aes秘钥限制问题解决办法

在oarcle jdk1.8上执行256位的aes秘钥加密报错如下:java.lang.RuntimeException: java.security.InvalidKeyException: Illegal key sizeat com.xx.opal.core.utils.aes.AESTool.encryptWithoutEncode(AESTool.java:33)at com.xx.opal.aes.AESTest.test(AESTest.java:19)at sun…

background-clip与background-origin

规定背景的绘制区域 浏览器支持 IE9、Firefox、Opera、Chrome 以及 Safari 支持 background-clip 属性。 注释&#xff1a;Internet Explorer 8 以及更早的版本不支持 background-clip 属性。IE9、Firefox、Opera、Chrome 以及 Safari 支持 background-clip 属性。 有三个值&am…

策略模式应用场景和uml_策略模式

策略模式应用场景和uml在最近的博客中&#xff0c;我收到了Wojciech Soczy&#xff1f;ski的评论&#xff0c;内容涉及在使用“不要问”&#xff08;TDA&#xff09;时如何使用“战略”模式实施单一责任原则&#xff08;SRP&#xff09;。 在某些时候&#xff0c;我打算进一步讨…

mysql建表时主键_mysql建表时怎么设置主键?

设置方法&#xff1a;在“CREATE TABLE”语句中&#xff0c;通过“PRIMARY KEY”关键字来指定主键&#xff0c;语法格式“字段名 数据类型 PRIMARY KEY [默认值]”或“[CONSTRAINT 约束名] PRIMARY KEY 字段名”。主键(PRIMARY KEY)的完整称呼是“主键约束”&#xff0c;是 MyS…

在OpenShift上部署Java EE微服务

我昨天用WildFly Swarm在博客上发布了有关简单JAX-RS微服务的博客。 您学习了如何使用Maven构建一个所谓的“胖子”&#xff0c;还使用Maven Docker插件对我们的微服务进行了Docker化并在Docker Machine上本地运行。 这是在本地测试事物的好方法。 到目前为止&#xff0c;缺少的…

rocketmq 订阅组_必须先理解的RocketMQ入门手册,才能再次深入解读

推荐阅读一下下2020年后想跳槽&#xff1f;MQ、ZK、Nginx、Kafk等分布式技术你都掌握了&#xff1f;阿里架构师推荐学习的《RabbitMQ实战指南》&#xff0c;渣渣的你都看过吗&#xff1f;RocketMQ入门手册RocketMQ是一个分布式、队列模型的开源消息中间件&#xff0c;前身是Met…

.net数据源控件绑定mysql_理解asp.net中DropDownList编辑数据源,绑定数据库数据。...

一、理解asp.net绑定数据库终于学习到了连接数据库部分的内容&#xff0c;杨中科老师视频看起来挺轻松的&#xff0c;如果是高清版就更ok了。我发现我学习新的编程语言会有一个特点&#xff0c;都想要赶紧学习数据库&#xff0c;数据就是一切&#xff0c;有了数据才能操作一切的…

jetty代理jetty_如何在Jetty中使用SPDY

jetty代理jettySPDY是Google提出的一种新协议&#xff0c;是针对网络的新协议。 SPDY与HTTP兼容&#xff0c;但尝试通过压缩&#xff0c;多路复用和优先级降低网页负载。准确地说&#xff0c;快速的目标是&#xff1a;&#xff08; http://dev.chromium.org/spdy/spdy-whitepap…

将Java EE与jOOQ结合使用的初学者指南

Java EE附带了自己的持久性API&#xff1a;JPA。 当您想要将RDBMS实体&#xff08;表/关系&#xff09;映射到Java实体&#xff08;类&#xff09;时&#xff0c;JPA最强大&#xff0c;主要遵循1&#xff1a;1映射策略。 其背后的想法是&#xff0c;业务逻辑通常并不像关系代数…

mysql备份需要停应用吗_对于含有innodb表的实例进行文件拷贝备份时必须停mysql实例吗...

展开全部在实际环境中&#xff0c;62616964757a686964616fe59b9ee7ad9431333361313261时不时需要备份恢复单个或多个表(注意&#xff1a;这里除非明确指定&#xff0c;所说的表一律指InnoDB表)&#xff0c;而对于innodb引擎恢复单个表需要整体的恢复&#xff0c;xtrabackup也可…

Apache Camel 2.16发布–十大亮点

Apache Camel 2.16于上周五发布。 这篇博客文章是我尝试在此新版本中进行前10名&#xff08;加1作为奖励&#xff09;的亮点。 1.动态到 来自骆驼用户的最常见的常见问题是如何将消息发送到端点&#xff0c;uri应该使用消息中的动态值&#xff08;例如标头&#xff09;。 在…

[原创软件]体验组批量加分工具

软件主要功能&#xff1a; 从excel批量导入用户QQ、昵称、年龄信息批量粘贴用户QQ或昵称进行筛选批量添加积分软件界面截图&#xff1a; 开发环境及语言&#xff1a; c#.NET Framework 4.0Visual Studio 2015更新日志&#xff1a; v1.2&#xff08;2016.9.30&#xff09; 增加格…

java 线性表的表示和实现_线性表中顺序表的的理解和实现(java)

线性表的顺序表示指的是用一组地址连续的存储单元以此存储线性表的数据元素&#xff0c;这种表示也称作线性表的顺序存储结构或顺序映像。通常&#xff0c;称这种存储结构的线性表为顺序表。特点是&#xff1a;逻辑上相邻的数据元素&#xff0c;其物理次序上也是相邻的。顺序表…

akka连接是什么_什么是Akka?

akka连接是什么在深入探讨什么是Akka之前&#xff0c;让我们退后一步来了解并发编程的概念在应用程序开发世界中是如何演变的。 应用程序已从大型的整体程序演变为面向对象的模型。 随着Java EE和Spring框架的出现&#xff0c;应用程序设计演变为更多的基于流程或任务的设计模型…

c java 系统开发_java开发系统内核:使用C语言开发系统应用程序

更详细的讲解和代码调试演示过程&#xff0c;请参看视频用java开发C语言编译器如果你对机器学习感兴趣&#xff0c;请参看一下链接&#xff1a;机器学习&#xff1a;神经网络导论我们的操作系统通过增添内核接口导出机制后&#xff0c;已经可以作为平台&#xff0c;运行应用程序…

抑制java对修饰符的检查_Java 7对抑制异常的支持

抑制java对修饰符的检查在JDK 7中 &#xff0c;向Throwable类&#xff08; Exception和Error类的父类&#xff09;添加了一个新的构造函数和两个新方法。 添加了新的构造函数和两个新方法以支持“抑制的异常”&#xff08;不要与吞咽或忽略异常的不良做法相混淆&#xff09;。 …