awt虚拟数字货币
⑴ 在java中出现Exception in thread "AWT-EventQueue-0"
内存溢出了吧。你给虚拟机分配多一些内存。
⑵ 用JAVA做个人民币大小写转换器
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class GUI extends JPanel{
private JTextField inTextField=new JTextField(20);
private JTextField outTextField=new JTextField(50);
private Timer timer=new Timer(100,new TimerListener());
private Changer changer=new Changer();//转换器//
public GUI(){
JPanel p1=new JPanel();
p1.add(new JLabel("小写"));
p1.add(inTextField);
p1.add(new JLabel("大写"));
p1.add(outTextField);
setLayout(new BorderLayout());
add(p1,BorderLayout.CENTER);
outTextField.setEditable(false);
inTextField.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
timer.stop();
changer.setIn(inTextField.getText());
outTextField.setText(changer.change());
timer.start();
}
});
timer.start();
}
class TimerListener implements ActionListener{
public void actionPerformed(ActionEvent e){
if(!inTextField.getText().equals("")){
changer.setIn(inTextField.getText());
outTextField.setText(changer.change());
}
}
}
public static void main(String[] args){
JFrame frame=new JFrame();
GUI gui=new GUI();
frame.getContentPane().add(gui);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
}
static class Changer{
String in;
String out="";
public Changer(){
}
public Changer(String in){
this.in=in;
}
public void setIn(String in){
this.in=in;
}
public String change(){
int lengthOfP1=(in.indexOf(".")!=-1) ? in.indexOf(".") : in.length();
//整数部分//;
int lengthOfP2=(in.indexOf(".")!=-1) ? in.length()-lengthOfP1-1 : in.length()-lengthOfP1 ;
//小数部分//;
if(lengthOfP2>2){
in=in.substring(0,in.indexOf(".")+3);
}
//取两位小数//
int p1=0;
int p2=0;
if(in.indexOf(".")!=-1&&in.indexOf(".")!=in.length()-1){
p1=Integer.parseInt(in.substring(0,in.indexOf(".")));
p2=Integer.parseInt(in.substring(in.indexOf(".")+1,in.length()));
//取两位小数//
}
else if(in.indexOf(".")==in.length()-1){
p1=Integer.parseInt(in.substring(0,in.indexOf(".")));
}
else{
p1=Integer.parseInt(in);
}
if(p2<10&&lengthOfP2==1){
p2=p2*10;
}
//取两位数//
if(lengthOfP1>=10){
return "Too much money.";
}
for(int i=lengthOfP1;i>0;i--){
int temp=(p1/((int)Math.pow(10,i-1)));
out+=value3(temp)+value1(i);
p1=p1%(int)Math.pow(10,i-1);
}
for(int i=2;i>0;i--){
int temp=(p2/((int)Math.pow(10,i-1)));
out+=value3(temp)+value2(i);
p2=p2%(int)Math.pow(10,i-1);
}
String output=out;
out="";
return output;
}
public static String value1(int num){
switch(num){
case 1:
return "元";
case 2:
return "十";
case 3:
return "百";
case 4:
return "千";
case 5:
return "万";
case 6:
return "十万";
case 7:
return "百万";
case 8:
return "千万";
case 9:
return "亿";
default:
return null;
}
}//转为中文符号//
public static String value2(int num){
switch(num){
case 2:
return "角";
case 1:
return "分";
default:
return null;
}
}//转为中文符号//
public static String value3(int num){
String s="零壹贰叁肆伍陆柒捌玖";
return s.charAt(num)+"";
}//转大写//
}
}
⑶ 你认为下一个会火的数字货币是什么
AWT有应用场景
⑷ 贵求一个用于将人民币转换为等值的美元,界面要求可以输入人民币的金额并可以得到转换后结果的java程序。
做了个互换的.输入人民币换美元. 人民币为空,光输入美元转成人民币
/*
* 这个程序实现输入身高算出标准体重,输入体重,算出身高的功能
*/
import java.awt.*; //导入相关类包,这才样使用相应awt图形界面的类
import java.awt.event.*;//同上
public class changeDollar extends Frame { //定义一个类Change, 父类是Frame(图形界面的)
Button b = new Button("转换"); //创建一个按钮的对象b,显示为"互查"
Label l1 = new Label("人民币:");//创建一个lable.显示身高
Label l2 = new Label("美元");//创建一个lable 显示体重
double heigth, weigth; //定义变量
double x, y; //定义变量
TextField tf1 = new TextField(null, 10);//添加Text框
TextField tf2 = new TextField(null, 10);//添加Text框
public changeDollar() {//类的构造函数,完成初始化
super("转换表");//创建窗口,标题为互查表
setLayout(new FlowLayout(FlowLayout.LEFT));//设置布局
add(l1);//把lable 身高放到window里
add(tf1);//把Text 框 放到窗口上
add(l2); //把lable 体重放到window里
add(tf2);//Test放到窗口里
add(b);//把button放到窗口上
pack();//自动放到窗口里排列上边的组件
setVisible(true);//可以让用户看到窗口
addWindowListener(new WindowAdapter() {//如果按 X, 关闭窗口
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
b.addActionListener(new ButtonListener());//添加button监听函数
}
class ButtonListener implements ActionListener {//实现click button时功能操作
public void actionPerformed(ActionEvent e) {//当click调用
if (tf1.getText()!=null) {//检查tf1 test 是否为空
try {//取异常
x = Double.parseDouble(tf1.getText());//字符转为double型
weigth = x*6.82;//
tf2.setText("" + weigth);//显示
} catch (NumberFormatException ex) {
tf1.setText("");//如果输入不是数字,设为空
}
}
if (tf1.getText().equals("")==true){//tf1是否为空
y = Double.parseDouble(tf2.getText());//把tf2里的文本转为double 型 的
heigth = y /6.82; //
tf1.setText("" + heigth);}//
}
}
public static void main(String[] args) {//主函数,程序入口
new changeDollar(); //建立类Change的对象,并调用他的构造函数Change().显示窗口
}
}
⑸ java小程序awt尽快!!!可私戳支付宝号!!!
* 将订单提交支付宝进行网上支付
*/
public ActionForward submitAlipayUrl(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String orderNo = request.getParameter("orderNo");//订单编号
HashMap hm = new HashMap();
hm.put("_input_charset", "utf-8");// 采用相同的编码方式
hm.put("body", "企鹅个性化图书订单,订单号:" + orderNo);// 填写在跳到支付宝页面上显示的付款内容信息
hm.put("notify_url", "http://127.0.0.1:8888/mypenguin/orders.do?method=AlipayNotify");// 客户付款后,支付宝调用的页面
hm.put("out_trade_no", orderNo);// 外部交易号,最好具有唯一性,在获取支付宝发来的付款信息时使用.
hm.put("partner", "2088002302055380");// partnerId(合作伙伴ID)
//hm.put("agent", "2088002302055380");// partnerId(合作伙伴ID)
hm.put("payment_type", "1");// 支付类型 1=商品购买,2=服务购买,...
//hm.put("price", "178.00");// 订单金额信息
hm.put("total_fee", "178.00");// 订单金额和信息
//hm.put("quantity", "1");// 订单商品数量,一般都是写1,它是按照整个订单包来计算
hm.put(“return_url”, “http://127.0.0.1:8888/mypenguin/orders.do?method=AlipayReturn”);// 客户付款成功后,显示给客户的页面
hm.put("show_url", "http://127.0.0.1:8888/mypenguin/books.do?method=list&kindId=1");//展示地址,即在支付页面时,商品名称旁边的“详情”的链接地址。
hm.put("seller_email", "[email protected]");// 你的支付宝账户email
hm.put("service", "create_direct_pay_by_user");// create_direct_pay_by_user=直接付款,trade_create_by_buyer=担保付款
hm.put("subject", "企鹅个性化图书订单号:" + orderNo);// 填写在跳到支付宝页面上显示的付款标题信息
String payGateway = "https://www.alipay.com/cooperate/gateway.do";// 跳转到支付宝的url头
String securityCode="";//securityCode(安全码);
String sign = makeUrl(hm,securityCode,"utf-8",payGateway);//securityCode(安全码);
hm.put("sign", sign);
hm.put("sign_type", "MD5");
PrintWriter out = response.getWriter();
out.println("<form name='alipaysubmit' method='post' action='https://www.alipay.com/cooperate/gateway.do?_input_charset=utf-8' >");
out.println("<input type='hidden' name='service' value='" + hm.get("service") + "'>");
out.println("<input type='hidden' name='partner' value='" + hm.get("partner") + "'>");
out.println("<input type='hidden' name='seller_email' value='" + hm.get("seller_email") + "'>");
out.println(““);
out.println("<input type='hidden' name='subject' value='" + hm.get("subject") + "'>");
out.println("<input type='hidden' name='body' value='" + hm.get("body") + "'>");
out.println("<input type='hidden' name='total_fee' value='" + hm.get("total_fee") + "'>");
out.println("<input type='hidden' name='show_url' value='" + hm.get("show_url") + "'>");
out.println("<input type='hidden' name='return_url' value='" + hm.get("return_url") + "'>");
out.println("<input type='hidden' name='notify_url' value='" + hm.get("notify_url") + "'>");
out.println("<input type='hidden' name='payment_type' value='1'>");
out.println("<input type='hidden' name='sign' value='" + hm.get("sign") + "'>");
out.println("<input type='hidden' name='sign_type' value='" + hm.get("sign_type") + "'>");
out.println("</form>");
out.println("<script>");
out.println(" document.alipaysubmit.submit()");
out.println("</script>");
return null;
}
/**
* 根据传入的参数生成Alipay的支付URL
* @param hm 参数值
* @param securityCode 安全码
* @param charset 编码
* @param payGateway 支付宝gateway
@return
*/
public static String makeUrl(HashMap hm,String securityCode,String charSet,String payGateway) throws Exception{
List keys = new ArrayList(hm.keySet());
Collections.sort(keys);//支付宝要求参数必须按字母排序
StringBuffer content = new StringBuffer();
for (int i = 0; i < keys.size(); i++) {
content.append((String) keys.get(i));
content.append("=");
content.append((String) hm.get((String) keys.get(i)));
if (i != keys.size() - 1) {
content.append("&");
}
}
content.append(securityCode);
String sign = DataUtil.MD5Encode(content.toString(), charSet); //MD5加密
return sign;
}
2、return_url的内容:
/**
* 支付宝支付完成以后,当前窗口会从支付宝的页面跳转回这个页面。该页面称作“返回页”,
* 是同步被支付宝服务器所调用,可当作是支付完成后的提示信息页,如“您的某某某订单,多少金额已支付成功”。
*/
public ActionForward AlipayReturn(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?service=notify_verify";
//String alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?";//此路径是在上面链接地址无法起作用时替换使用。
alipayNotifyURL = alipayNotifyURL+ "&partner=2088002302055380¬ify_id="+ request.getParameter("notify_id");
// 获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的
String responseTxt = check(alipayNotifyURL);
// 获得POST 过来参数设置到新的requestParams中
Map requestParams = request.getParameterMap();
List keys = new ArrayList(requestParams.keySet());
Collections.sort(keys);
StringBuffer content = new StringBuffer();
for (int i = 0; i < keys.size(); i++) {
String key=(String) keys.get(i);
if(!key.equals("")&&!key.equals("sign")&&!key.equals("sign_type")){
content.append((String) keys.get(i));
content.append("=");
content.append((String)requestParams.get((String) keys.get(i)));
if (i != keys.size() - 1) {
content.append("&");
}
}
}
String securityCode="";//securityCode(安全码);
content.append(securityCode);
String mysign = DataUtil.MD5Encode(content.toString(), "utf-8");
System.out.println("--------------------------content="+content);
System.out.println("--------------------------mysign="+mysign);
System.out.println("--------------------------sign="+request.getParameter("sign"));
if (mysign.equals(request.getParameter("sign")) && responseTxt.equals("true") ){
if (request.getParameter("trade_status").equalsIgnoreCase("TRADE_FINISHED")){
// 可以做重定向,也可以用来虚拟物品发货
}
return mapping.findForward("payOK");//交易成功
}else{
return mapping.findForward("payFail");//交易失败
}
}
3、notify_url的内容:
/**
* 通知返回URL,仅适用于异步返回处理结果的接口。有些服务是无法立即返回处理结果的,那么需要通过这个URL将处理结果异步返回给合作伙伴
*/
public ActionForward AlipayNotify(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?service=notify_verify";
//String alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?";//此路径是在上面链接地址无法起作用时替换使用。
alipayNotifyURL = alipayNotifyURL+ "&partner=2088002302055380¬ify_id="+ request.getParameter("notify_id");
// 获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的
String responseTxt = check(alipayNotifyURL);
// 获得POST 过来参数设置到新的requestParams中
Map requestParams = request.getParameterMap();
List keys = new ArrayList(requestParams.keySet());
Collections.sort(keys);
StringBuffer content = new StringBuffer();
for (int i = 0; i < keys.size(); i++) {
String key=(String) keys.get(i);
if(!key.equals("")&&!key.equals("sign")&&!key.equals("sign_type")){
content.append((String) keys.get(i));
content.append("=");
content.append((String)requestParams.get((String) keys.get(i)));
if (i != keys.size() - 1) {
content.append("&");
}
}
}
String securityCode="";//securityCode(安全码);
content.append(securityCode);
String mysign = DataUtil.MD5Encode(content.toString(), "utf-8");
System.out.println("--------------------------content="+content);
System.out.println("--------------------------mysign="+mysign);
System.out.println("--------------------------sign="+request.getParameter("sign"));
if (mysign.equals(request.getParameter("sign")) && responseTxt.equals("true") ){
if (request.getParameter("trade_status").equalsIgnoreCase("TRADE_FINISHED")){
// 可以做重定向,也可以用来虚拟物品发货
}
return mapping.findForward("payOK");
}else{
return mapping.findForward("payFail");
}
}
/**
@param myUrl
*
String inputLine = ““;
try
{
URL url = new URL(urlvalue);
HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String stTemp = ““;
while((stTemp = in.readLine()) != null)
{
System.out.println(stTemp);
inputLine = inputLine + stTemp;
}
}
catch(Exception e)
{
e.printStackTrace();
}
return inputLine;
}
代码编写完毕,可以试着debug调试一下
@param url
*
@return 获取url内容
*/
public static String check(String urlvalue ) {
⑹ Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
解释一下 java.lang.OutOfMemoryError:摘自java doc
public class OutOfMemoryError
extends VirtualMachineError
因为内存溢出或没有可用的内存提供给垃圾回收器时,Java 虚拟机无法分配一个对象,这时抛出该异常。
我们知道Vector是用一个Object数组保存它里面的元素的(protected Object[] elementData;),当elementData.length()太大时,jvm不能分配出那么多内存空间,就会出错了.你可以试一试定义int []a=new int[100000000](381M),出现同样的问题.
⑺ java.awt的类摘要
AlphaComposite AlphaComposite 类实现一些基本的 alpha 合成规则,将源色与目标色组合,在图形和图像中实现混合和透明效果。 AWTEvent 所有 AWT 事件的根事件类。 AWTEventMulticaster AWTEventMulticaster 实现对 java.awt.event 包中定义的 AWT 事件的指派,该指派是有效的、线程安全的多路广播事件指派。 AWTKeyStroke AWTKeyStroke 表示键盘(或等效输入设备)上的键操作。 AWTPermission 此类用于 AWT 权限。 BasicStroke BasicStroke 类定义针对图形图元轮廓呈现属性的一个基本集合,这些图元使用Graphics2D对象呈现,而该对象的 Stroke 属性设置为此 BasicStroke。 BorderLayout 这是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。 BufferCapabilities 缓冲区的能力和属性。 BufferCapabilities.FlipContents 页面翻转后可能的后台缓冲区内容的一个类型安全的枚举 Button 此类创建一个标签按钮。 Canvas Canvas 组件表示屏幕上一个空白矩形区域,应用程序可以在该区域内绘图,或者可以从该区域捕获用户的输入事件。 CardLayout CardLayout 对象是容器的布局管理器。 Checkbox 复选框是一个可处于“开”(true) 或“关”(false) 状态的图形组件。 CheckboxGroup CheckboxGroup 类用于集合 Checkbox 按钮集。 CheckboxMenuItem 此类表示一个可包括在菜单中的复选框。 Choice Choice 类表示一个弹出式选择菜单。 Color Color 类用于封装默认 sRGB 颜色空间中的颜色,或者用于封装由ColorSpace标识的任意颜色空间中的颜色。 Component component是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互。 ComponentOrientation ComponentOrientation 类封装语言敏感的方向,用于排序组件或文本内容。 Container 一般的 Abstract Window Toolkit(AWT) 容器对象是一个可包含其他 AWT 组件的组件。 Cursor 封装鼠标光标的位图表示形式的类。 DefaultKeyboardFocusManager AWT 应用程序的默认 KeyboardFocusManager。 Desktop Desktop 类允许 Java 应用程序启动已在本机桌面上注册的关联应用程序,以处理URI或文件。 Dialog Dialog 是一个带标题和边界的顶层窗口,边界一般用于从用户处获得某种形式的输入。 Dimension Dimension 类封装单个对象中组件的宽度和高度(精确到整数)。 DisplayMode DisplayMode 类封装 GraphicsDevice 的位深、高度、宽度和刷新率。 Event 注:Event 类已废弃,只可用于向后兼容。 EventQueue EventQueue 是一个与平台无关的类,它将来自于底层同位体类和受信任的应用程序类的事件列入队列。 FileDialog FileDialog 类显示一个对话框窗口,用户可以从中选择文件。 FlowLayout 流布局用于安排有向流中的组件,这非常类似于段落中的文本行。 FocusTraversalPolicy FocusTraversalPolicy 定义一种顺序,按此顺序遍历具有特定焦点循环根的 Component。 Font Font 类表示字体,可以使用它以可见方式呈现文本。 FontMetrics FontMetrics 类定义字体规格对象,该对象封装将在特定屏幕上呈现特定字体的有关信息。 Frame Frame 是带有标题和边框的顶层窗口。 GradientPaint GradientPaint 类提供了使用线性颜色渐变模式填充Shape的方法。 Graphics Graphics 类是所有图形上下文的抽象基类,允许应用程序在组件(已经在各种设备上实现)以及闭屏图像上进行绘制。 Graphics2D 此 Graphics2D 类扩展Graphics类,以提供对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。 GraphicsConfigTemplate GraphicsConfigTemplate 类用于获得有效的GraphicsConfiguration。 GraphicsConfiguration GraphicsConfiguration 类描述图形目标(如打印机或监视器)的特征。 GraphicsDevice GraphicsDevice 类描述可以在特定图形环境中使用的图形设备。 GraphicsEnvironment GraphicsEnvironment 类描述了 Java(tm) 应用程序在特定平台上可用的GraphicsDevice对象和Font对象的集合。 GridBagConstraints GridBagConstraints 类指定使用 GridBagLayout 类布置的组件的约束。 GridBagLayout GridBagLayout 类是一个灵活的布局管理器,它不要求组件的大小相同便可以将组件垂直、水平或沿它们的基线对齐。 GridBagLayoutInfo GridBagLayoutInfo 是 GridBagLayout 布局管理器的一个实用工具类。 GridLayout GridLayout 类是一个布局处理器,它以矩形网格形式对容器的组件进行布置。 Image 抽象类 Image 是表示图形图像的所有类的超类。 ImageCapabilities 图像的功能和属性。 Insets Insets 对象是容器边界的表示形式。 JobAttributes 控制打印作业的属性集合。 JobAttributes.DefaultSelectionType 可能的默认选择状态的类型安全的枚举。 JobAttributes.DestinationType 可能的作业目标的类型安全枚举。 JobAttributes.DialogType 显示给用户的可能对话框的类型安全枚举。 JobAttributes.MultipleDocumentHandlingType 可能的多副本处理状态的类型安全枚举。 JobAttributes.SidesType 可能的多页整版的类型安全枚举。 KeyboardFocusManager KeyboardFocusManager 负责管理激活状态的聚焦 Window 和当前焦点所有者。 Label Label 对象是一个可在容器中放置文本的组件。 LinearGradientPaint LinearGradientPaint 类提供利用线性颜色渐变模式填充Shape的方式。 List List 组件为用户提供了一个可滚动的文本项列表。 MediaTracker MediaTracker 类是一个跟踪多种媒体对象状态的实用工具类。 Menu Menu 对象是从菜单栏部署的下拉式菜单组件。 MenuBar MenuBar 类封装绑定到框架的菜单栏的平台概念。 MenuComponent 抽象类 MenuComponent 是所有与菜单相关的组件的超类。 MenuItem 菜单中的所有项必须属于类 MenuItem 或其子类之一。 MenuShortcut 表示 MenuItem 键盘加速器的 MenuShortcut 类。 MouseInfo MouseInfo 提供获取有关鼠标信息的方法,如鼠标指针位置和鼠标按钮数。 MultipleGradientPaint 这是 Paints 的超类,它使用多个颜色渐变来填充它们的光栅。 PageAttributes 用来控制打印页面输出的属性集。 PageAttributes.ColorType 可能颜色状态的类型安全的枚举。 PageAttributes.MediaType 可能的纸张大小的类型安全的枚举。 PageAttributes.OrientationRequestedType 可能打印方向的类型安全的枚举。 PageAttributes.OriginType 可能原点的类型安全的枚举。 PageAttributes.PrintQualityType 可能的打印质量的类型安全的枚举。 Panel Panel 是最简单的容器类。 Point 表示 (x,y) 坐标空间中的位置的点,以整数精度指定。 PointerInfo 描述指针位置的类。 Polygon Polygon 类封装了坐标空间中封闭的二维区域的描述。 PopupMenu 此类实现能够在组件中的指定位置上动态弹出的菜单。 PrintJob 启动并执行打印作业的抽象类。 RadialGradientPaint RadialGradientPaint 类提供使用圆形辐射颜色渐变模式填充某一形状的方式。 Rectangle Rectangle 指定坐标空间中的一个区域,通过坐标空间中 Rectangle 对象左上方的点 (x,y)、宽度和高度可以定义这个区域。 RenderingHints RenderingHints 类定义和管理键和关联值的集合,它允许应用程序将输入提供给其他类使用的算法选择,这些类执行呈现和图像处理服务。 RenderingHints.Key 定义与RenderingHints一起使用的、用来控制呈现和图像管线中各种算法选择的所有键的基本类型。 Robot 此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。 Scrollbar Scrollbar 类描述了一个滚动条,这是大家都很熟悉的用户界面对象。 ScrollPane 实现用于单个子组件的自动水平和/或垂直滚动的容器类。 ScrollPaneAdjustable 此类表示 ScrollPane 的水平或垂直滚动条的状态。 SplashScreen 在 Java 虚拟机 (JVM) 启动之前,可以在应用程序启动时创建闪现屏幕。 SystemColor 封装表示系统中本机 GUI 对象颜色的象征性颜色的类。 SystemTray SystemTray 类表示桌面的系统托盘。 TextArea TextArea 对象是显示文本的多行区域。 TextComponent TextComponent 类是所有允许编辑文本的组件的超类。 TextField TextField 对象是允许编辑单行文本的文本组件。 TexturePaint TexturePaint 类提供一种用被指定为BufferedImage的纹理填充Shape的方式。 Toolkit 此类是所有 Abstract Window Toolkit 实际实现的抽象超类。 TrayIcon TrayIcon 对象表示可以添加到系统托盘的托盘图标。 Window Window 对象是一个没有边界和菜单栏的顶层窗口。