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基础知识学习(九)的更多相关文章
- java基础知识学习笔记
本文知识点以js为参照.对比分析得出笔记.JavaScript之所以叫JavaScript是打算借助java推广自己.虽然都是开发语言,但JavaScript一开始主要运行在 客户端,而java主要运 ...
- Java基础知识学习(三)
面向对象部分 首先要了解面向对象的思想,与C#一致,都是面向对象的语言 访问修饰符 public 共有的,对所有类可见. protected 受保护的,对同一包内的类和所有子类可见. private ...
- Java基础知识学习(一)
部门接了新项目,后台使用Java框架play framework,前端是html,前后台通过rest交互,能够支持多端的互联网架构. 因为之前没有Java基础,前端使用的也很少,决定深入学习一下Jav ...
- Java基础知识陷阱(九)
本文发表于本人博客. 今天我来说说关于JAVA多线程知识,有错误请指出.大家都知道JAVA在服务端上处理也有很大优势,很多公司也有在服务器跑JAVA进程,这说明JAVA在处理这个多线程以及并发下也有一 ...
- Java基础知识学习(二)
Java语法基础 数据类型.类型转换.运算符.逻辑运算符.参考C#,基本一致 输入输出 输出 System.out.print("abc"); System.out.printf( ...
- java基础知识学习 内存相关
Java 内存分配策略 静态存储区(方法区):主要存放静态数据.全局 static 数据和常量.这块内存在程序编译时就已经分配好,并且在程序整个运行期间都存在. 栈区 :当方法被执行时,方法体内的局部 ...
- Java基础知识学习(八)
IO操作 5个重要的类分别是:InputStream.OutStream.Reader.Writer和File类 面向字符的输入输出流 输入流都是Reader的子类, CharArrayReader ...
- Java基础知识学习(七)
线程(续) 线程同步 当两个或两个以上的线程需要共享资源,它们需要某种方法来确定资源在某一刻仅被一个线程占用.达到此目的的过程叫做同步(synchronization) 可以用两种方法同步化代码.两者 ...
- Java基础知识学习(六)
多线程 先了解线程的概念 多线程需要注意的地方 优先级.线程同步.消息传递.数据共享.死锁等 Java线程类 Thread,实现接口 Runnable Thread常用方法 getName 获得线程名 ...
随机推荐
- WebApp简单制作(后端也可以装逼啦)
前端越来越吃香的感觉 年后回来,跟之前和几个同事和朋友聊天,发现有两个.net的和一个php的朋友都转到了前端,真是出乎意料.自从之前的webapp兴起后,前端感觉比后端吃香很多,总结朋友们转的原因, ...
- CSRF 防御策略
在业界目前防御 CSRF 攻击主要有三种策略:验证 HTTP Referer 字段:在请求地址中添加 token 并验证:在 HTTP 头中自定义属性并验证.下面就分别对这三种策略进行详细介绍. 验证 ...
- AlertDialog.Builder弹出对话框
在Android中,弹出对话框使用AlertDialog.Builder方法. new AlertDialog.Builder(MainActivity.this).setTitle("本机 ...
- 非阻塞同步算法与CAS(Compare and Swap)无锁算法
锁(lock)的代价 锁是用来做并发最简单的方式,当然其代价也是最高的.内核态的锁的时候需要操作系统进行一次上下文切换,加锁.释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放. ...
- JPHP最新进展 v0.6
项目地址:https://github.com/jphp-compiler/jphp 旧文:http://www.cnblogs.com/x3d/p/3631386.html 旧文2:http://w ...
- vim退出后终端保留 退出前的内容
export TERM=linux 或者 具体选项 可以看看secrecrt的选项
- 泛函编程(37)-泛函Stream IO:通用的IO处理过程-Free Process
在上两篇讨论中我们介绍了IO Process:Process[I,O],它的工作原理.函数组合等.很容易想象,一个完整的IO程序是由 数据源+处理过程+数据终点: Source->Process ...
- JS json的使用
json的定义 json能够通过4种基本数据类型以及2种结构化数据表示 字符串 "footbar" 不能使用单引号 数值 125.4 只支持10进制 布尔 true fals ...
- Redis-持久化
Redis 持久化 Redis 提供了不同持久化范围的选项: RDB 持久化以指定的时间间隔执行数据集的即时点(point-in-time)快照. AOF 持久化在服务端记录每次收到的写操作,在服务器 ...
- 图解javascript this指向什么?
JavaScript 是一种脚本语言,支持函数式编程.闭包.基于原型的继承等高级功能.JavaScript一开始看起来感觉会很容易入门,但是随着使用的深入,你会发现JavaScript其实很难掌握,有 ...