JAVA图形用户界面及网络编程文档格式.docx
《JAVA图形用户界面及网络编程文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA图形用户界面及网络编程文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
分析,尤其是针对错误输出的分析
【实验环境】:
PC机一台
JDK1-6
Eclipse开发环境
【实验原理及方案设计】:
图形用户界面(GraphicsUserInterface,GUI)为应用程序提供了一个图形化的界面。
GUI使用图形的方式,借助菜单,按钮等标准界面元素和鼠标操作,帮助用户方便的向计算机系统发出命令、启动操作,并将系统运行的结果同样以图形的方式显示给用户。
在Java2DAPI中,各种文字都是意图形的方式输出。
以图形的方式绘制文字需要使用Graphics类和Graphics2D类提供的绘制文字的成员方法。
Color类定义了许多个有颜色的常量和成员方法供编程中使用。
不论使用哪种构造方法来创建Color对象,都需要制定新建颜色中的R(红)、G(绿)、B(蓝)三色的比例。
Java.awt包中共定义了五种布局管理器类,分别是BoderLayout、FlowLayout、CardLayout和GridBagLayout。
这五个类都是java.lang.Object类的直接子类,且每个布局管理其对应一种布局策略。
Javax.swing包中定义了4种布局管理器,分别是BoxLayout、ScrollPaneLayout、ViewportLayout和OverlayLayout。
【实验过程】:
(实验步骤、记录、数据、分析)
1、实验步骤:
新建工程
新建类
输入源程序
保存并编译java
运行java应用程序
2、实验内容、源代码及运行结果:
1)、获取主机IP地址
importjavax.swing.*;
importjava.applet.Applet;
importjava.awt.*;
importjava.awt.event.*;
importjava.util.*;
import.*;
publicclasstimu1extendsJAppletimplementsActionListener
{
Containercp=getContentPane();
JLabellb1=newJLabel("
IPI地址:
"
JLabel.CENTER);
JTextFieldtf1=newJTextField(20);
JButtonbt1=newJButton("
获取IP地址"
);
JButtonbt2=newJButton("
退出系统"
StringIP=null;
publicvoidinit()
cp.setLayout(newFlowLayout());
cp.add(lb1);
cp.add(tf1);
cp.add(bt1);
bt1.addActionListener(this);
cp.add(bt2);
bt2.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==bt1)
try
{
InetAddressia=InetAddress.getLocalHost();
IP=ia.getHostAddress();
}
catch(UnknownHostExceptiong)
{g.printStackTrace();
}
tf1.setText(IP);
运行结果:
2、创建URL对象
import.InetAddress;
import.UnknownHostException;
import.MalformedURLException;
import.URL;
publicclassurllextendsJFrameimplementsActionListener
{
staticURLmyURL=null;
Containerctp=getContentPane();
Fontfont;
JTextFieldtf1=newJTextField(10);
JLabellb=newJLabel("
网页地址"
JButtonjb=newJButton("
验证"
urll()
font=newFont("
宋体"
Font.BOLD,10);
ctp.setLayout(newFlowLayout());
lb.setFont(font);
lb.setForeground(newColor(0,0,150));
ctp.add(lb,BorderLayout.CENTER);
ctp.add(tf1,BorderLayout.SOUTH);
ctp.add(jb,BorderLayout.NORTH);
jb.addActionListener(this);
setSize(300,150);
setVisible(true);
publicstaticvoidmain(String[]args)throwsMalformedURLException{
urllcc=newurll();
myURL=newURL("
http:
//netbeans.org/docs/java/quickstart.html"
publicvoidactionPerformed(ActionEvente)
Stringrbt=e.getActionCommand();
if("
==rbt)
tf1.setText(myURL.toString());
3、获取URL的端口
publicclassa
publicstaticvoidmain(Stringargs[])
URLMyURL=null;
try
MyURL=newURL("
catch(MalformedURLExceptione)
System.out.println("
MalformedURLException:
+e);
请输入一个完整的网址:
\n"
+MyURL.toString());
这个网址使用的端口号是:
+MyURL.getPort());
4、提取URL协议名称
publicclassc151
publicstaticvoidmain(Stringargs[])
这个网址的主机名是:
+MyURL.getHost());
这个网址的URL协议名:
+MyURL.getProtocol());
5、设置连接超时
importjava.awt.BorderLayout;
importjava.io.IOException;
import.ServerSocket;
import.SocketTimeoutException;
importjavax.swing.JFrame;
importjavax.swing.JOptionPane;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
publicclasschaoshilianjieextendsJFrame{
privatestaticfinallongserialVersionUID=1L;
privateServerSocketserver;
privateJTextAreajt;
publicstaticvoidmain(String[]args){
chaoshilianjieframe=newchaoshilianjie();
frame.setVisible(true);
frame.getserver();
publicchaoshilianjie(){
setTitle("
连接超时"
setBounds(350,200,300,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JScrollPanejs=newJScrollPane();
getContentPane().add(js,BorderLayout.CENTER);
jt=newJTextArea();
js.setViewportView(jt);
publicvoidgetserver(){
try{
server=newServerSocket(1880);
server.setSoTimeout(10000);
jt.append("
服务器套接字已经创建成功\n"
while(true){
jt.append("
等待与各户连接……\n"
server.accept();
}
}catch(SocketTimeoutExceptione){
JOptionPane.showMessageDialog(null,"
连接超时……"
System.exit(9);
}catch(IOExceptione){
e.printStackTrace();
6、单向通讯
7、使用Socket传输图片
importjava.awt.EventQueue;
importjavax.swing.JPanel;
importjavax.swing.border.EmptyBorder;
importjavax.swing.UIManager;
importjavax.swing.GroupLayout;
importjavax.swing.GroupLayout.Alignment;
importjavax.swing.JLabel;
importjavax.swing.JTextField;
importjavax.swing.LayoutStyle.ComponentPlacement;
importjavax.swing.JButton;
importjava.awt.Font;
publicclassdanextendsJFrame{
privatestaticfinallongserialVersionUID=-7271269958119825302L;
privateJPanelcontentPane;
privateJTextFieldtextField;
privateJTextFieldtextField_1;
privateJTextFieldtextField_2;
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
danframe=newdan();
frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
}
});
publicdan(){
setBackground(UIManager.getColor("
Button.disabledForeground"
));
setForeground(UIManager.getColor("
Button.shadow"
\u670D\u52A1\u5668\u7AEF\u7A0B\u5E8F"
setBounds(100,100,450,126);
contentPane=newJPanel();
contentPane.setBorder(newEmptyBorder(5,5,5,5));
setContentPane(contentPane);
JLabellblNewLabel=newJLabel("
\u8DEF\u5F84\uFF1A"
lblNewLabel.setFont(newFont("
隶书"
Font.BOLD,16));
textField=newJTextField();
textField.setColumns(10);
JButtonbtnNewButton=newJButton("
\u9009\u62E9\u56FE\u7247"
btnNewButton.setBackground(UIManager.getColor("
ComboBox.selectionBackground"
btnNewButton.setFont(newFont("
JButtonbtnNewButton_1=newJButton("
\u53D1\u9001"
btnNewButton_1.setBackground(UIManager.getColor("
btnNewButton_1.setFont(newFont("
textField_1=newJTextField();
textField_1.setText("
\u670D\u52A1\u5668\u7AEF\u9009\u62E9\u7684\u8981\u53D1\u9001\u7684\u56FE\u7247"
textField_1.setBackground(UIManager.getColor("
ComboBox.disabledBackground"
textField_1.setColumns(10);
textField_2=newJTextField();
textField_2.setText("
\u63A5\u6536\u5230\u5BA2\u6237\u7AEF\u53D1\u9001\u7684\u56FE\u7247"
textField_2.setBackground(UIManager.getColor("
textField_2.setColumns(10);
GroupLayoutgl_contentPane=newGroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addComponent(lblNewLabel)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(textField,GroupLayout.PREFERRED_SIZE,113,GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(btnNewButton)
.addGap(18)
.addComponent(btnNewButton_1))
.addComponent(textField_1,GroupLayout.PREFERRED_SIZE,186,GroupLayout.PREFERRED_SIZE)
.addComponent(textField_2,GroupLayout.PREFERRED_SIZE,159,GroupLayout.PREFERRED_SIZE)))
.addContainerGap(60,Short.MAX_VALUE))
);
gl_contentPane.setVerticalGroup(
.addContainerGap()
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(lblNewLabel)
.addComponent(textField,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)
.addComponent(btnNewButton_1)
.addComponent(btnNewButton))
.addPreferredGap(ComponentPlacement.RELATED,20,Short.MAX_VALUE)
.addComponent(textField_1,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)
.addComponent(textField_2,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)))
contentPane.setLayout(gl_contentPane);
程序代码:
importjavax.swing.LayoutStyl