java swing(java swing布局)
本文目录
- java swing布局
- java中的swing什么意思
- java swing
- java swing组件的优点有哪些
- JAVA Swing
- java的awt和swing有什么不同呢
- java中的swing用法
- JAVA初学者:swing是什么
- java中swing 全称
- 为什么一提到java的swing和awt组件,大家都不建议学
java swing布局
null layout不是很好,所有的东西都要自己定义,一旦窗口大小变化就要重新计算。我建议使用MigLayout。上手慢,但很强大。
java中的swing什么意思
Swing是一个用于开发Java应用程序用户界面的开发工具包。以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 工具包中所有的包都是以swing作为名称.
java swing
这个写法忒复杂了,难怪你看不懂。我给你改改。第一,先去掉这个 win.addWindowListener(new WindowHandler(win));这个写法真烂。 然后:JFrame win = new JFrame("Hello"); win.setSize(154, 84); //设置窗口大小,154是长,84是高 win.setVisible(true); //设置窗口是可视的,非隐藏的。 JLabel l = new JLabel("Hello there!", JLabel.CENTER); //一个文本签,显示字符Hello there!,JLabel.CENTER表示显示在中间,非靠左或靠右。 win.getContentPane().add(l, BorderLayout.CENTER);//可直接简化为win.add(l, BorderLayout.CENTER),窗口中加入 l 这个文字标签,BorderLayout.CENTER表示在窗口的正中。 win.addWindowListener(new WindowHandler(win));// 没上下文,不能运算。 所以让你删了,因为WindowHandler这个类你没有写在这页中,所以这里不能使用,计算机不认得他。
java swing组件的优点有哪些
Java Swing组件的特点:1、Swing的实现是一个小型GUI框架,该框架无基本平台依赖性,而在AWT实现中却有依赖性。2、javax.swing.JComponent类是所有Swing组件的基类。3、Swing模型的目标是要遵循模型-视图-控制器体系结构。模型封装了数据和状态的底层表示。4、javax.swing.plaf包提供了一个接口和许多抽象类用于定义可插入的外观框架。缺省的外观由javax.swing.plaf.basic包中的类实现。
JAVA Swing
看来是你真是刚学啊首先你得知道this 的意思,我在这里就不多解实了this.getContentPane(); 这个方法是获得 JFrame 这个窗口的最顶层容器,他是一个 JPanel 对象 , 可以理解为一个面板,可以往这个面板里添加 组件 例如: new JPannel().add(new Button()); 但是: 注意,这里是关键,你的代码是 1.5 之前的老代码,在JFrame 里加东西 要先获得他的顶层容器,1.5 以后己经不用这么麻烦了,你的代码 可以 化简成:public class Demo2 extends JFrame{ Demo2() { this.setTitle(""); this.setLayout(null); JPanel leftPanel = new JPanel(); JPanel rightPanel = new JPanel(); leftPanel.setBounds(10, 10, 100, 100); leftPanel.setBackground(new Color(255,0,255)); rightPanel.setBounds(0, 0, 0, 0); rightPanel.setBackground(new Color(0,255,0)); this.add(leftPanel); this.add(rightPanel); this.setVisible(true); this.setSize(310, 200); }再不明白 HI 我吧
java的awt和swing有什么不同呢
awt和swing的区别:
1.awt是基于本地方法的C/C++程序,其运行速度比较快;
而swing是基于awt的Java程序,其运行速度比较慢。
2.AWT的控件在不同的平台可能表现不同,而Swing在所有平台表现一致。
3.AWT和Swing的实现原理不同。
AWT的图形函数与操作系统提供的图形函数有着一一对应的关系。
而Swing 不仅提供了AWT 的所有功能,还用纯粹的Java代码对AWT的功能进行了大幅度的扩充。
4.awt是抽象窗口组件工具包,是 java 最早的用于编写图形节目应用程序的开发包;
但swing是为了解决awt存在的问题而新开发的包,它以awt为基础的。
扩展资料:
在实际应用中,应该使用AWT还是Swing取决于应用程序所部署的平台类型。
对于一个嵌入式应用,目标平台的硬件资源往往非常有限,而应用程序的运行速度又是项目中至关重要的因素。
在这种矛盾的情况下,简单而高效的AWT当然成了嵌入式Java的第一选择。
在普通的基于PC或者是工作站的标准Java应用中,硬件资源对应用程序所造成的限制往往不是项目中的关键因素。
所以在标准版的Java中则提倡使用Swing, 即通过牺牲速度来实现应用程序的功能。
java中的swing用法
import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.Scanner;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;public class TestRegister extends JDialog { // setup the variable String name=""; String password=""; JLabel nameL,passwordL; JTextField nameArea; JPasswordField passwordArea; JButton register,login,cancel; ArrayList 《User》 userData = new ArrayList 《User》();public static void main(String args) { TestRegister test = new TestRegister(); test.setupLayout(); } public void setupLayout(){ this.setBounds(300, 200,280,120); this.setTitle("Register"); this.setResizable(false); this.setModal(true); setupTypeArea(); this.getData(); this.setVisible(true); } public void setupTypeArea(){ JPanel typeArea = new JPanel(); typeArea.setLayout(new FlowLayout()); nameL = new JLabel("name: "); passwordL = new JLabel("password: "); nameArea = new JTextField(15); passwordArea = new JPasswordField(15); typeArea.add(nameL); typeArea.add(nameArea); typeArea.add(passwordL); typeArea.add(passwordArea); this.add(typeArea); JPanel buttonArea = new JPanel(); register = this.addButton("Register", buttonArea); login = this.addButton("Login", buttonArea); cancel = this.addButton("Cancel", buttonArea); this.add(buttonArea,BorderLayout.SOUTH); } public JButton addButton(String name,JPanel panel){ JButton temp = new JButton(name); temp.addActionListener(new ButtonMonitor()); panel.add(temp); return temp; } public void showMessage(String m){ JOptionPane.showMessageDialog(this, m); } public void getData(){ try { Scanner input = new Scanner(new FileReader("D:/data.txt")); while(input.hasNextLine()){ this.addUser(input.nextLine()); } } catch (FileNotFoundException e) { return; } } public void addUser(String data){ String s = data.split(" "); String name = s; String password = s; userData.add(new User(name,password)); } public void updateData(){ try { FileWriter saver = new FileWriter("D:/data.txt"); String data = ""; for(int i=0; i《userData.size();i++){ data += userData.get(i).toString()+"\n"; } saver.write(data); saver.close(); } catch (IOException e) { return; } } public void doRegister(){ String name = nameArea.getText(); String password = passwordArea.getText(); if(!name.isEmpty()&!password.isEmpty()){ for(int i=0;i《userData.size();i++){ if(name.equals(userData.get(i).getName())){ String m = "这个用户名已经注册!!"; this.showMessage(m); doCancel(); return; } } userData.add(new User(name,password)); updateData(); doCancel(); } else{ String m="用户名或者密码是空!!!"; this.showMessage(m); doCancel(); } } public void doLogin(){ String name = nameArea.getText(); String password = passwordArea.getText(); for(int i=0;i《userData.size();i++){ if(name.equals(userData.get(i).getName())&&password.equals(userData.get(i).getPassword())){ String m = "登陆成功"; this.showMessage(m); this.doCancel(); return; } } String m ="用户名和密码不匹配!!"; this.showMessage(m); this.doCancel(); } public void doCancel(){ nameArea.setText(""); passwordArea.setText(""); } class ButtonMonitor implements ActionListener{ public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("Register")){ doRegister(); }else if(e.getActionCommand().equals("Login")){ doLogin(); }else if(e.getActionCommand().equals("Cancel")){ doCancel(); } } } class User{ String name; String password; public User(String name, String password) { this.name = name; this.password = password; } public String getName() { return name; } public String getPassword() { return password; } public String toString(){ return name+" "+password; } }}给你随便写了一下。。。简单登陆用的话用JDialog就够了不必要用JFrame 其实最好是用数据库
JAVA初学者:swing是什么
看看这个就知道了Java应用程序用户界面开发包 Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event 用Swing创建图形界面步骤: (1)导入Swing包 (2)选择界面风格 (3)设置顶层容器 (4)设置按钮和标签 (5)将组件放到容器上 (6)为组件增加边框 (7)处理事件 (8)辅助技术支持 1。导入Swing包 下面语句导入Swing包 import javax.swing.*; 大部分Swing程序用到了AWT的基础底层结构和事件模型,因此需要导入两个包: import java.awt.*; import java.awt.event.*; 如果图形界面中包括了事件处理,那么还需要导入事件处理包: import javax.swing.event.*; 2.选择界面风格 Swing允许选择程序的图形界面风格常用的有java风格,windows风格等 下面的代码用于选择图形界面风格,这里选择的是跨平台的Java界面风格。 try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName( )); } catch (Exception e) { } (3) 设置顶层容器 图形界面至少要有一个顶级Swing容器 顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供支持 常用的顶级容器: JFrame(框架):表示主程序窗口 JDialog(对话框):每个JDialog对象表示一个对话框,对话框属于二级窗口 JApplet(小程序):在浏览器内显示一个小程序界面 一个框架包括边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格 窗格也可以看作是一种面板,但它是框架的一个组成部分 组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上 用框架对象的getContentPane()函数来获得窗格,再调用窗格的add()函数放置面板 public static void main(Stringargs){JFrame frame=new JFrame("SwingApplication"); JPanel panel1=new JPanel(); frame.getContentPane().add(panel1,BorderLayout.CENTER); ......//添加其他组件 frame.pack();frame.setVisible(true);}
java中swing 全称
swing就是全称awt是abstract window toolkit的简写,但是swing没有swing的意思是:1 摇摆; 摆动2 摆动的幅度; 摆动的范围 The pendulum’s swing is 12 inches. 钟摆的摆动幅度是十二寸3 手臂挥动产生的打击4 挥动 (球棒, 高尔夫球棒等物) 的姿势5 (态度, 地位, 状况的) 改变 a swing to conservation 转趋保守6 自由的行为 The children have free swing in deciding what color to paint their room.孩子可自行决定房间油漆的颜色7 a. 优雅的移动 has a swing to her walk 走路摇曳生姿 b. 前后摆动 the swing of a bird across the sky 鸟在空中的飞行8 (可以回到原点的) 路线, 行程 a swing across the state while campaigning 竞选时在州内的循环活动9 秋千10 正常步调 back in the swing 回归正常11 (诗的) 音律12 股市行情的起伏13 『音乐』 a. 摇摆乐 1935 年以爵士为基础发展而成的流行舞曲, 旋律较简单 b. 放摇摆乐舞曲的舞厅 c. 轻妙的节奏看来swing有很多有意思的地方,或许开发者开发swing组件的时候就看上了哪条吧~
为什么一提到java的swing和awt组件,大家都不建议学
早期的java主要是应用在web开发方面,所以从实用的角度出发,确实可以略过AWT和Swing的学习。在移动端开发流行之后,AWT和Swing又成为一个必修的内容了,因为做Android开发如果有一定的AWT基础是比较好的,很多概念是统一的。
为了描述这个问题,我们首先要了解到底什么是AWT,什么是Swing,以及它们与Android开发有什么联系。
AWT与Swing
java语言第一个支持图形界面开发的API就是AWT,在AWT中定义了java图形界面的很多核心概念,所以要了解java的图形界面开发方式一定要从了解AWT开始。下面分别介绍一下AWT中的三个核心概念:容器、组件、布局。
图形容器是存放图形元素的场所和环境,java中把容器分为顶级容器和次顶级容器。顶级容器可以单独显示、次顶级容器不能单独显示。顶级容器的代表是Frame,次顶级容器的代表是Panel。
图形组件是具体的图形应用元素,比如Button(按钮)、TextField(文本框)、Label(标签)、Choice(下拉列表)等等,每一个图形组件代表一种具体的图形应用元素。
布局的作用是安排图形组件在容器中的排列样式,常见的布局方式有BorderLayout、FlowLayout和GridLayout等。其中BorderLayout是Frame的默认布局管理器,FlowLayout是Panel的默认布局管理器。
具体的图形开发根据不同的界面设计采用不同的容器、布局和组件进行搭配组合,复杂的图形组件遵循顶级容器嵌套次顶级容器的方式来完成。
Swing与AWT相比较最大的优点是轻量级方式,Swing不依赖于本地操作系统,所以在样式上能够进行统一。在写法上采用了在AWT的类名基础上增加一个大写的J字符,比如在AWT中的Frame改为JFrame,Button改为JButton等等。
在实际的开发中比较推荐使用Swing的方式,一个原因是Swing的组件在外观上更具备科技感,另一个原因是它占用的资源较AWT更少。
事件处理
说到AWT和Swing一定要说一下图形组件的事件处理方式,Java中的事件处理方式采用了监听的方式,也可以称为“代理”的方式。事件处理类通过实现具体的接口来完成对应的事件处理,比如ActionEvent对应的ActionListener接口;KeyEvent对应的KeyListener接口;MouseEvent对应的MouseListener接口和MouseMotionListener接口;WindowEvent对应的WindowListener接口等等。
这种处理方式让图形界面类和事件处理类进行了有效的分离,在代码处理上更加方便和灵活,在Swing的很多组件中也遵循了MVC的结构,让代码更加容易模块化。
总的来说java中的事件处理并不复杂,通过一定的实验就能完全掌握,所有这并不是学习的负担。
AWT与Android开发的关系
传统的java图形处理方式并不完全适用于Android开发,在Android开发中通常采用配置文件的方式来完成Activity的创建,当然也可以使用代码的方式来完成Android的界面开发。
不管使用哪种方式来创建Android界面,大体的概念是一致的,比如布局、组件等等,只不过名称上有所区别,比如AWT中的Flowlayout对应于Android的布局是LinearLayout等,虽然名称不同但是概念是一致的。
事件处理方式也是大体一致,不过android开发中提供了基于回调的事件处理方式,这种方式在做一些简单的事件处理时比较方便。
所以如果将来要从事Android开发还是建议系统地学习一下AWT或Swing。
关注我,学习更多关于java开发的内容。
更多文章:
pc端浏览器下载安装(百度浏览器电脑版怎么安装 百度浏览器安装教程)
2024年10月15日 08:30
verycd游戏(以前玩过一个游戏忘记名字了,问问大家它叫什么名字我想重新下载)
2024年7月29日 23:15
谷歌阅读器的软件介绍?谷歌阅读器https:// reader.google.com登录后地址栏自动转到下面的地址,是不是被绑架了
2024年6月14日 19:47
dreamweaver cc(Dreamweaver CC的工作区由哪几部分组成各部分的作用是什么)
2024年6月24日 20:15
u盘不显示盘符(为什么我插入U盘桌面的右下角有显示但在我的电脑中找不到盘符)
2024年7月17日 05:47
魅族mx2联通合约机(请问魅族MX2联通合约机和普通的有什么区别)
2024年7月17日 13:21
xmlhttprequest(xmlhttprequest怎么用)
2024年6月18日 20:19
elseif(用ifelse和elseif有什么区别和联系可以相互替换吗)
2024年6月7日 20:00
qq飞车手游抢先服官网(QQ飞车手游内测激活码地址及领取方法详解)
2024年9月23日 08:05