本文实例讲述了java GUI界面。分享给大家供大家参考,具体如下:
Java不太擅长做图形界面;
AWT是一种较老的包,最新的是Swing包,由于其包内调用了一部分的操作系统的内容,所以无法做到完全的跨平台。
对于每一个图形元素都是一个component类,其包含container,container是一个component,同时他又作为component的一个容器类,又可以存放component。在container中还有window和panel两种类,其中window类是独立的,可以直接显示,而panel类不独立,不能直接显示,必须依附于window类进行显示。在window下面还有Frame和Dialog,panel下面有applet,其中Frame是一个窗口,而Dialog是一个对话框,对于对话框有必须处理和不必须处理两种。
几个Frame/Panel实例
instance1:
添加几个基本的元素,构造方法一:建立一个Frame对象
import java.awt.*; public class TestGui { public static void main(String[] args) { Frame f = new Frame("My Frame") ; f.setBounds(30, 30, 300, 300); f.setBackground(Color.blue); f.setResizable(true); f.setVisible(true); } }
注:在方法中,location用来设置图形的位置,size用来设置图形的大小,而用bounds可以直接设置其位置和大小
instance2:
构造方法二,通过建立一个新的类进行创建,其中该类要继承Frame
import java.awt.Color; import java.awt.Frame; public class TestFrame2 { public static void main(String[] args) throws Exception{ new MyFrame1(100,100,200,200,Color.BLUE); new MyFrame1(100,300,200,200,Color.CYAN); new MyFrame1(300,100,200,200,Color.gray); new MyFrame1(300,300,200,200,Color.MAGENTA); } } class MyFrame1 extends Frame{ static int d = 0; MyFrame1(int x,int y,int w,int z,Color c){ super("MyFrame " + ++d); // setTitle("MyFrame " + ++d); setBounds(x,y,w,z); setBackground(c); setResizable(true); setVisible(true); } }
注:可以直接new一个对象而不给其指定名称,这样已经在内存里有了空间但是没有名称调用,
对于MyFrame其继承自Frame用其构造方法给图形起一个名字,也可以用setTitle方法,但是用super()时必须要求变量为静态的。(??)
Panel:
instance 3:
import java.awt.*; public class TestPanel { public static void main(String[] args) { Frame f1 = new Frame("MyFrame 1"); Panel p1 = new Panel(); f1.setBounds(300, 300, 600, 600); f1.setBackground(Color.blue); f1.setLayout(null); p1.setBounds(100, 100, 200, 200); p1.setBackground(Color.DARK_GRAY); f1.add(p1); f1.setResizable(true); p1.setVisible(true); f1.setVisible(true); } }
注:对于panel,由于其不能独立的显示所以必须要把它加入到一个window类中进行显示,
其和window类一样,必须调用其setVisible方法才能看的见。此外,这里setLayout参数是null,对应的对window进行拖动的时候,其内部的panel是不变的。
instance 4:
import java.awt.*; public class TestPanel2 { public static void main(String[] args) { new MyFrame4("MyFrame H",300,300,400,400); } } class MyFrame4 extends Frame{ // private Penal p1,p2,p3,p4; MyFrame4(String s, int x,int y,int w,int h){ super(s); setBounds(x,y,w,h); setBackground(Color.BLUE); setLayout(null); setResizable(true); setVisible(true); Panel p1 = new Panel(null); Panel p2 = new Panel(null); Panel p3 = new Panel(null); Panel p4 = new Panel(null); p1.setBounds(0, 0, w/2, h/2); p3.setBounds(w/2, 0, w/2, h/2); p2.setBounds(0, h/2, w/2, h/2); p4.setBounds(w/2, h/2,w/2, h/2); add(p1); add(p2); add(p3); add(p4); p1.setBackground(Color.CYAN); p2.setBackground(Color.GRAY); p3.setBackground(Color.GREEN); p4.setBackground(Color.RED); p1.setVisible(true); p2.setVisible(true); p3.setVisible(true); p4.setVisible(true); } }
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
Linux 系统启动过程 Linux 的启动其实和 Windows 的启动过程很类似,不过 Windows 我们是无法看到启动信息的,而 linux 启动时我们会看到许多启动信息,例如某个服务是否启动。 Linux 系统的启动过程大体上可分为五部分:内核的引导;运行 init;系统初始化;建立终端 ;用户登录系统。 内核引导 当计算机打开电源后,首先是 BIOS 开机自检,按照 BIOS 中设置的
JAVA 提供了一组丰富的库,以独立于平台的方式创建图形用户界面。 在本文中,我们将介绍 AWT(Abstract Window Toolkit)。
什么是 Logstash?为什么要用 Logstash?怎么用 Logstash? 本章正是来回答这个问题,或许不完整,但是足够讲述一些基础概念。跟着我们安装章节一步步来,你就可以成功的运行起来自己的第一个 logstash 了。 我可能不会立刻来展示 logstash 配置细节或者运用场景。我认为基础原理和语法的介绍应该更加重要,这些知识未来对你的帮助绝对更大! 所以,认真阅读他们吧! 链接 下
和绝大多数 IT 技术介绍一样,我们以一个输出 “hello world” 的形式开始我们的 logstash 学习。 运行 在终端中,像下面这样运行命令来启动 Logstash 进程: # bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}' 然后你会发现终端在等待你的输入。没问题,敲入 Hello World,回车,然
第一次运行 Burp 时,您需要花一点时间检查您的显示设置。 Burp 可以让您定制 UI,为不同部分选择不同大小的字体,您可能需要根据屏幕分辨率更改这些设置。 首先,查看 Burp 菜单,标签标题,按钮和其他文本中显示的文本。 如果要更改主 UI 字体大小,请转到选项(User Options)选项卡,然后转到显示(Display)子选项卡,在用户界面部分中选择字体大小。 然后重新启动 Burp
本文向大家介绍Ruby多线程编程初步入门,包括了Ruby多线程编程初步入门的使用技巧和注意事项,需要的朋友参考一下 传统程序有一个单独的线程执行,包含该程序的语句或指令顺序执行直到程序终止。 一个多线程的程序有多个线程的执行。在每个线程是按顺序执行的,但是在多核CPU机器上线程可能并行地执行。例如,通常情况下在单一CPU的机器,多个线程实际上不是并行执行的,而是模拟并行交叉的线程的执行。 Rub