Java基础知识学习(九)
GUI开发
先前用Java编写GUI程序,是使用抽象窗口工具包AWT(Abstract Window Toolkit).现在多用Swing。Swing可以看作是AWT的改良版,而不是代替AWT,是对AWT的提高和扩展。所以,在写GUI程序时,Swing和AWT都要作用。它们共存于Java基础类(Java Foundation Class,JFC)中。
AWT依赖于主平台绘制用户界面组件;而Swing有自己的机制,在主平台提供的窗口中绘制和管理界面组件。Swing与AWT之间的最明显的区别是界面组件的外观,AWT在不同平台上运行相同的程序,界面的外观和风格可能会有一些差异。然而,一个基于Swing的应用程序可能在任何平台上都会有相同的外观和风格。
Swing中的类是从AWT继承的,有些Swing类直接扩展AWT中对应的类。例如,JApplet、JDialog、JFrame和JWindow。
使用Swing设计图形界面,主要引入两个包:
- javax.swing包:包含Swing的基本类;
- java.awt.event包:包含与处理事件相关的接口和类。
import javax.swing.*; public class Example1_1 { public static void main(String[] args) {
JFrame mw = new JFrame("Demo Form");
mw.setSize(,);
JButton button = new JButton("Demo Button");
mw.getContentPane().add(button);
mw.setVisible(true);
} }
图形界面开发使用的各种空间,最好在网站上找例子,写一写Demo
http://www.weixueyuan.net/java/rumen_11/
网络编程
Java提供一系列的类支持Java程序访问网络资源。
先了解下网络协议
InetAddress类的对象用于IP地址和域名
public static void main(String[] args) {
try {
InetAddress addr = InetAddress.getByName("www.weixueyuan.net");
String domain = addr.getHostName();
String ip = addr.getHostAddress();
System.out.println(domain);
System.out.println(ip); } catch (UnknownHostException e) {
e.printStackTrace();
}
}
URL类
统一资源定位符URL(Uniform Resource Locator)是www客户机访问Internet时用来标识资源的名字和地址。
URL url;
try {
url = new URL("http://www.weixueyuan.net:80/");
} catch (MalformedURLException e) {
e.printStackTrace();
}
要接收和发关信息还要用URLConnection类
url = new URL("http://www.weixueyuan.net:80/");
URLConnection urlConnection = url.openConnection();
提供的以下方法获得流对象和实现网络连接:
- getOutputStream():获得向远程主机发送信息的OutputStream流对象;
- getInputStream():获得从远程主机获取信息的InputStream流对象。有了网络连接的输入和输出流,程序就可实现远程通信;
- connect():设置网络连接。
示例:读取URL资源
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JTextArea;
import javax.swing.JTextField; public class Example1_1 { public static void main(String[] args) {
new DownNetFile();
} } class DownNetFile extends JFrame implements ActionListener {
JTextField infield = new JTextField();
JTextArea showArea = new JTextArea();
JButton b = new JButton("download");
JPanel p = new JPanel(); DownNetFile() {
super("read network text file application");
Container con = this.getContentPane();
p.add(infield);
p.add(b);
JScrollPane jsp = new JScrollPane(showArea);
b.addActionListener(this);
con.add(p, "North");
con.add(jsp, "Center");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(, );
setVisible(true);
} public void actionPerformed(ActionEvent e) {
readByURL(infield.getText());
} public void readByURL(String urlName) {
try {
showArea.setText("");
URL url = new URL(urlName);
URLConnection tc = url.openConnection();
tc.connect();
InputStreamReader in = new InputStreamReader(tc.getInputStream());
BufferedReader br = new BufferedReader(in);
String line;
while ((line = br.readLine()) != null) {
showArea.append(line +"\n");
}
br.close(); } catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
}
Socket
http://www.weixueyuan.net/view/6080.html
数据库
http://www.weixueyuan.net/view/6081.html
Java基础暂时学习这些,接下来会学习一些java web开发,之后遇到问题时在做深入研究。
最新文章
- Java Generics and Collections-2.3
- # Hawk:开源贡献计划,设计,反思
- WeView 里引用的H5中的文字 到行末尾 文字被切割
- 网页播放器(jsp、js)
- 桥接和nat模式区别
- WebService 入门程序(一)
- Django Models的数据类型
- Ant-进阶
- 百度地图 Android SDK - Hello Baidu Map
- 通过自定义window来实现提示框效果
- haroxy hdr
- Java基本语法-----java数组(一维数组二维数组)
- .NET Core 中基于 IHostedService 实现后台定时任务
- js 字符串转数组
- C#从IE缓存读取图片
- 不是说记住rm -rf的教训就够了
- P1036 选数 题解
- k8s中yaml文件pod的语法(转)
- C#写的COM组件注册问题兼论微软Regasm注册的BUG
- 《剑指offer》第二十三题(链表中环的入口结点)