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(250,200); JButton button = new JButton("Demo Button"); mw.getContentPane().add(button); mw.setVisible(true); }}
图形界面开发使用的各种空间,最好在网站上找例子,写一写Demo
网络编程
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(30); 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(500, 400); 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
数据库
Java基础暂时学习这些,接下来会学习一些java web开发,之后遇到问题时在做深入研究。