不积跬步到底读gui还是kui?

不积跬步到底读gui还是kui?,第1张

跬的读音是kuǐ,声母是k,韵母是ui。

一、跬的释义

古称一举足(一脚向前迈出后着地)的距离为跬,两举足的距离为步。

二、笔顺

竖、横折、横、竖、横、竖、提、横、竖、横、横、竖、横。

三、组词

跬步、跬行、跬誉、举跬、不旋跬等。

相关组词:

一、跬步 [ kuǐ bù ]

半步。

二、跬行 [ kuǐ xíng ]

谓举足而行。

三、跬誉 [ kuǐ yù ]

眼前的一时的声誉。

四、举跬 [ jǔ kuǐ ]

进行持续的具体努力。

五、不旋跬 [ bù xuán kuǐ ]

喻时间极短。

进行Java GUI(Graphical User Interface 图形用户界面)编程 大家或许经常徘徊在SWT/JFACE Swing AWT之间选择 哪一个更合适自己?AWT作为Java语言的第一个GUI类库包 在这三者之间中年龄最长 可谓开国元勋 老二Swing 兼容AWT 同时又对AWT进行了改进 可谓站在前辈的肩膀上 自然就会看的远了 老三SWT/JFace 则只能用不走寻常路来形容它 SWT/JFace采取了与AWT和Swing完全不同的技术路线 这三剑客之间 究竟孰优孰劣 且听下文分解 穷途末路的AWT     AWT(Abstract Windowing Toolkit) 中文译为抽象窗口工具包 是Java提供的用来建立和设置Java的图形用户界面的基本工具 AWT由Java中的java awt包提供 里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类 这些类被称为组件(ponents)     抽象窗口工具包 (Abstract Windowing Toolkit) (AWT)是Java的平台独立的窗口系统 图形和用户界面器件工具包 AWT是Java基础类 (JFC)的一部分 为Java程序提供图形用户界面(GUI)的标准API     AWT提供了Java Applet和Java Application中可用的用户图形界面GUI中的基本组件(ponents) 由于Java是一种独立于平的程序设计语言 但GUI却往往是依赖于特定平台的 Java采用了相应的技术使得AWT能提供给应用程序独立于机器平台的接口 这保证了同一程序的GUI在不同机器上运行具有类似的外观(不一定完全一致)     抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立图形用户界面GUI (Graphics User Interface)工具集 AWT可用于Java的applet和applications中 它支持图形用户界面编程的功能包括 用户界面组件 事件处理模型 图形和图像工具 包括形状 颜色和字体类 布局管理器 可以进行灵活的窗口布局而与特定窗口的尺寸和屏幕分辨率无关 数据传送类 可以通过本地平台的剪贴板来进行剪切和粘贴     然而 Java推出的时候 AWT作为Java最弱的组件受到不小的批评 最根本的缺点是AWT在原生的用户界面之上仅提供了一个非常薄的抽象层 例如 生成一个AWT的复选框会导致AWT直接调用下层原生例程来生成一个复选框 不幸的是 一个Windows平台上的复选框同MacOS平台或者各种UNIX风格平台上的复选框并不是那么相同 这种糟糕的设计选择使得那些拥护Java 一次编写 到处运行 (write once run anywhere) 信条的程序员们过得并不舒畅 因为AWT并不能保证他们的应用在各种平台上表现得有多相似 一个AWT应用可能在Windows上表现很好 可是到了Macintosh上几乎不能使用 或者正好相反 在 年代 程序员中流传着一个笑话:Java的真正信条是 一次编写 到处测试 (write once test everywhere) 导致这种糟糕局面的一个可能原因据说是AWT从概念产生到完成实现只用了一个月     在第二版的Java开发包中 AWT的器件很大程度上被Swing工具包替代 Swing通过自己绘制器件而避免了AWT的种种弊端 Swing调用本地图形子系统中的底层例程 而不是依赖 *** 作系统的高层用户界面模块 Swing的出现 宣告了AWT的穷途末路 目前几乎看不到AWT在GUI上的应用了

Swing——想说爱你不容易     Java Swing是Java Foundation Classes(JFC)的一部分 它是试图解决AWT缺点的一个尝试 从这一点上来说 Swing可以说是站在前人(以AWT的表现 实在很难称之为巨人)的肩膀上了 SWING解决了AWT的很多缺点 相对于AWT Swing是轻量级元件 SWING 提供许多比AWT更好的屏幕显示元素 它们用纯Java写成 所以同Java本身一样可以跨平台运行 这一点不像AWT 它们是JFC的一部分 它们支持可更换的观感和主题(各种 *** 作系统默认的特有主题) 然而Swing不是真的使用原生平台提供的设备 而是仅仅在表面上模仿它们 这意味着你可以在任意平台上使用JAVA支持的任意观感 轻量级元件的缺点则是执行速度较慢 优点就是可以在所有平台上采用统一的行为     在Swing 中 Sun 开发了一个经过仔细设计的 灵活而强大的 GUI 工具包 其中大量应用了MVC模式 这大大增加了Swing的灵活性 笔者曾经做过一个大型的大型C/M/S(Client/Middleware/Server)项目 其中客户端UI采用的就是Swing 可以说 Swing几乎可以实现所有的你能够想到效果 只要你技术足够精湛 都可以实现 这也许在某些高手看来 是Swing一个很明显的优势 然而Swing的这种设计确苦了Java的初学者或者面向对象程序设计造诣不深的程序员 灵活就意味这功能强大 功能强大就意味着复杂 对于一般的程序员来说 Swing太复杂了 以至于他们在还不了解Swing的时候就已经放弃了选择Swing 或者失去净下心来继续学下去的毅力 最后写出来的只能是一堆垃圾代码     如果说功能强大但是过于复杂会让人对Swing想爱确不知道怎么去爱的话 那么Swing的低效则会让大多数的程序员感叹——Swing 想说爱你不容易 由于Swing是轻量级组件 因此Swing中的每一个组件都是采用Java身的画点 画线的函数画出来的 并没有调用 *** 作系统组件 Java字节码的运行速度大概是同等条件下C/C++语言程序运行速度的 / ~ / 于是 采用JBuilder进行开发的朋友们经常可以看到JBuilder灰屏(窗体上组件还没有画出来)的景象 正是因为Swing的蜗牛速度 因此在Java推出这么多年来 很少能够看见比较成熟的Swing桌面应用(JBuilder算是其中最成功的一个了 但是现在随着Eclipse的崛起 JBuilder的发展也是举步维艰)     总之 Swing在AWT的基础上很好的解决了跨平台观感不一的问题 并且提供了比AWT更为丰富的组件(AWT连树形控件 表格控件都没有)和强大的功能 却因为其过于复杂难以上手和让人无法接受的速度让广大程序员对其失去了好感 这不能不让人惋惜

SWT/JFace——众里寻她千百度     就在Java在中间件市场(J EE)以及web应用(JSP/Sevlet)上大放异彩的时候 AWT的穷途末路 Swing的饱受病诟 这一切似乎让Java的GUI开发沉寂的像一潭死水 寻寻觅觅 冷冷清清 凄凄惨惨戚戚啊! SWT/JFace象一股清新的风吹入了Java的GUI开发领域 为这个沉闷的领域带来了勃勃生机 虽然SUN不接纳SWT/JFace作为Java中的一种图形API标准 但它虽然借着Eclipse的优异表现 以不可阻挡之势向前发展着 终于可以用SWT/JFace轻松的开发出高效率的GUI程序 且拥有标准的Windows外观 Eclipse软件就是基于SWT/JFace构建的 大家看看Eclipse 就知道SWT有多么的棒

图 SWT/JFace的代表作——Eclipse界面

lishixinzhi/Article/program/Java/ky/201311/28231

@SuppressWarnings("serial")
public class Time extends javaxswingJFrame implements ActionListener {
private JButton tube; //定义灯
private JButton jButton1; //定义按钮
private JTextField jTextField1;//定义文本
private JButton jButton2; //定义按钮

private static int log = 0;
private static int buttonLog = 0;
private static Timer time = null; //定义定时器
AnchorLayout thisLayout = new AnchorLayout();
public static void main(String[] args) {
SwingUtilitiesinvokeLater(new Runnable() {
public void run() {
Time inst = new Time();
instsetLocationRelativeTo(null);
instsetVisible(true);
}
});
}

public Time() {
super();
initGUI();
}

private void initGUI() {
try {
getContentPane()setLayout(thisLayout);
setDefaultCloseOperation(WindowConstantsDISPOSE_ON_CLOSE);
tube = new JButton();
tubesetText("灯"); //显示的内容
tubesetBounds(40, 20, 50, 30); //按钮位置和大小
tubesetLocale(new javautilLocale("zh", "CN"));
tubesetBackground(ColorGREEN); //按钮背景颜色
tubesetEnabled(false); //按钮不可编辑
thisadd(tube);
jButton1 = new JButton();
jButton1setText("按钮A"); //显示的内容
jButton1setBounds(30, 60, 70, 30); //按钮位置和大小
jButton1setLocale(new javautilLocale("zh", "CN"));
jButton1addActionListener(this);
thisadd(jButton1);

jTextField1 = new JTextField();
jTextField1setText(""); //显示的内容
jTextField1setLocale(new javautilLocale("zh", "CN"));
jTextField1setBounds(40, 100, 50, 30); //文本位置和大小
thisadd(jTextField1);

jButton2 = new JButton();
jButton2setText("按钮B"); //显示的内容
jButton2setLocale(new javautilLocale("zh", "CN"));
jButton2setBounds(30, 140, 70, 30); //按钮位置和大小
jButton2addActionListener(this);
thisadd(jButton2);

pack();
setSize(500, 400); //画面大小
} catch (Exception e) {
eprintStackTrace();
}
}
@Override
public void actionPerformed(ActionEvent e) {

ActionListener drawClock = new ActionListener () {
public void actionPerformed (ActionEvent evt) {
log = log + 1;
jTextField1setText(StringvalueOf(log));
repaint();
}
};

if (egetSource() == jButton1 && tubegetBackground()equals(ColorGREEN)) {
tubesetBackground(ColorMAGENTA);
} else if(egetSource() == jButton1) {
tubesetBackground(ColorGREEN);
}

if (egetSource() == jButton2 && buttonLog%2 == 0) {
time = new Timer(1000,drawClock);
timestart();
buttonLog = buttonLog + 1;
} else if (egetSource() == jButton2) {
timestop();
Systemoutprintln(buttonLog);
buttonLog = buttonLog + 1;
}
}
}

楼上的 搜来的代码 也要改改才能符合楼主的要求吧…… 我两个都写到一起了 import javaawt;import javaxswing;
import javaawtBorderLayout;
import javaawtRectangle;
import javaawteventMouseEvent;
import javaawteventMouseAdapter;
import javaawteventActionListener;
import javaawteventActionEvent;
import javaxswingeventDocumentListener;
import javaxswingeventDocumentEvent;public class FrameTest extends JFrame implements DocumentListener{
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JPasswordField jPasswordField1 = new JPasswordField();
JTextField jTextField1 = new JTextField();
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenu1 = new JMenu();
JMenu jMenu2 = new JMenu();
JMenu jMenu3 = new JMenu();
JMenuItem jMenuItem1 = new JMenuItem();
JMenuItem jMenuItem2 = new JMenuItem();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel(); public FrameTest() {
try {
jbInit();
} catch (Exception exception) {
exceptionprintStackTrace();
}
} private void jbInit() throws Exception {
jMenu1setText("文件");
jMenu2setText("编辑");
jMenu2addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
JOptionPaneshowMessageDialog(null, "菜单“编辑”被点击");
}
}); jMenu3setText("帮助");
jMenu3addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
JOptionPaneshowMessageDialog(null, "菜单“帮助”被点击");
}
}); jMenuItem1setText("打开");
jMenuItem1addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPaneshowMessageDialog(null, "菜单项“打开”被点击");
}
});
jMenuItem2setText("退出");
jMenuItem2addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPaneshowMessageDialog(null, "菜单项“退出”被点击,系统关闭");
Systemexit(0);
}
});
jLabel1setText("密码:");
jLabel1setBounds(new Rectangle(43, 75, 42, 15));
jLabel2setText("显示密码:");
jLabel2setBounds(new Rectangle(35, 128, 82, 15)); jPanel1add(jPasswordField1);
jPanel1add(jTextField1);
jPanel1add(jLabel1);
jPanel1add(jLabel2);
jMenuBar1add(jMenu1);
jMenuBar1add(jMenu2);
jMenuBar1add(jMenu3);
jMenu1add(jMenuItem1);
jMenu1add(jMenuItem2);
jTextField1setText("");
jTextField1setBounds(new Rectangle(156, 123, 135, 25));
jPasswordField1setText("");
jPasswordField1getDocument()addDocumentListener(this);
jPasswordField1setBounds(new Rectangle(156, 70, 135, 25));
jPanel1setLayout(null); thissetJMenuBar(jMenuBar1);
thisgetContentPane()add(jPanel1, javaawtBorderLayoutCENTER);
thissetSize(500, 300);
Dimension screenSize = ToolkitgetDefaultToolkit()getScreenSize();
Dimension frameSize = thisgetSize();
if (frameSizeheight > screenSizeheight) {
frameSizeheight = screenSizeheight;
}
if (frameSizewidth > screenSizewidth) {
frameSizewidth = screenSizewidth;
}
thissetLocation((screenSizewidth - frameSizewidth) / 2,
(screenSizeheight - frameSizeheight) / 2); thissetResizable(false);
thissetVisible(true);
thissetDefaultCloseOperation(EXIT_ON_CLOSE);
} public void changedUpdate(DocumentEvent e) {
jTextField1setText(StringvalueOf(jPasswordField1getPassword()));
} public void insertUpdate(DocumentEvent e) {
jTextField1setText(StringvalueOf(jPasswordField1getPassword()));
} public void removeUpdate(DocumentEvent e) {
jTextField1setText(StringvalueOf(jPasswordField1getPassword()));
}
public static void main(String[] args) {
new FrameTest();
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12817729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存