百度
360搜索
搜狗搜索

java swing 教程,Java语言,使用Swing插件实现基于UDP的文字传输程序详细介绍

本文目录一览: java中的swing用法

在你的登陆那部分添加下面一段!
try {
BufferedReader input = new BufferedReader(new FileReader(
"M:/a.txt"));
System.out.println("读取文件成功");
String line = null;
line = input.readLine();
System.out.println(line);
if (line.equals(d06.jtf.getText())) {
line = input.readLine();
if (line.substring(1).equals(
String.valueOf(d06.pwd.getPassword()))) {
System.out.println("账号密码一致");
} else {
System.out.println("账号密码不一致");
}
} else {
System.out.println("账号密码不一致");
}
} catch (Exception ee) {
System.out.println("读文件过程中出错");
}
是要多个用户吗???
那么最好考虑使用数据库。
学习下...
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

userData = new ArrayList

();

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[0];

String password = s[1];

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

其实最好是用数据库
</userdata.size();i++){
</userdata.size();i++){
</userdata.size();i++){

java swing程序怎么运行?

import java.awt.*;import javax.swing.*;public class GUI extends JFrame{ private JMenuBar mb=new JMenuBar(); private JMenu mm=new JMenu("文件"); private JMenuItem mi1=new JMenuItem("粘贴"); private JMenuItem mi2=new JMenuItem("复制"); private JLabel l=new JLabel(); public GUI(){ this.setLayout(null); mm.add(mi1); mm.add(mi2); mb.add(mm); this.setJMenuBar(mb); l.setText("我的第一个图形用户界面"); l.setBounds(10,10,450,30); this.getContentPane().add(l); this.setBounds(330,250,500,150); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args){ new GUI(); }}

java swing中按钮的颜色要怎么设置

public class Demo { public static void main(String args[]) throws IOException { ButtonDemo demo = new ButtonDemo(); demo.view(); }}class ButtonDemo extends JFrame { private static final long serialVersionUID = 1L; public void view() { JPanel panel = new JPanel(); Button button = new Button("ok"); button.setBackground(Color.RED); // 设置颜色 panel.add(button); add(panel); setSize(200, 200); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); }}
1.1 olor
1.1.1 new Color(red, green,blue);
red, green,blue: 0~255
swing基础概念教程:

阅读更多 >>>  weblogic中间件,weblogic 中间件 如何 配置URL访问策略

利用 Java Swing 实现游戏开发

   Swing初体验     对于想学习Swing编程的朋友 我们特地为大家准备了一些小窍门 首先 下载并阅读代码是极有必要的 由于这是一篇关于Swing的教程 所以 我们只是尽可能讲解一些与Swing有关的内容 与Swing无关的内容一般不会涉及 例如算法部分 其次 受篇幅限制 也不可能在这里将每部分代码都写得完完整整的 所以 大家也需要对照完整代码来看 最后 为了使大家更容易把精力集中在Swing学习上 我们也将游戏开发中所需资源放在下载文件中 大家下载后便能够编译运行 看到执行结果 (下载游戏源文件)     顶层容器     什么是顶层容器?当我们使用Java进行图形编程的时候 图在哪里绘制呢?我们需要一个能够提供图形绘制的容器 这个容器就被称为顶层容器 你也可以把它想象成一个窗口 顶层容器是进行图形编程的基础 一切图形化的东西 都必然包括在顶层容器中 在Swing中 我们有三种可以使用的顶层容器 它们分别是:    JFrame:用来设计类似于Windows系统中的窗口形式的应用程序     JDialog:和JFrame类似 只不过JDialog是用来设计对话框     JApplet:用来设计可以在嵌入在网页中的Java小程序     如果需要使用Swing制作一个窗口类程序 我们的代码看起来应该是这样:    import javax swing *;    public class KyodaiUI  extends JFrame {  ……  }     控件     控件是构成应用程序界面的基本元素 按钮 文本框 进度条等 这些都是控件 控件(这里我们只讨论可视化控件)又可以分为容器控件和非容器控件 从字面意义上来理解 容器控件就是能包含其他控件的特殊控件 例如 Java中的JPanel控件就属于容器型控件 我们可以在JPanel中放置按钮 文本框等非容器控件 你甚至可以在JPanel中再放置若干个JPanel控件(值得注意的是 顶层容器也是容器型控件 每一个窗口应用程序中有且只能有一个顶层容器控件 换句话说 顶层容器不能包括在其他的控件中)     Java中的容器控件有很多 除刚才提到的JPanel外 还有JTabbedPane JScrollPane等 非容器控件有JButton JLabel JTextField等 如果你需要向某个容器型的控件中添加控件 你可以使用 add(Component p) 方法来实现 如:    JPanel panel = new JPanel();  JButton button = new JButton();  panel add(button);     布局     什么是布局?布局是Java中用来控制控件排列位置的一种界面管理系统 使用过其他可视化编程开发语言的人在初次接触Java界面设计时 总会感觉到Java界面设计很别扭:居然没有提供所见即所得的设置控件坐标的方法!然而 事实证明 Java本身提供的布局管理系统也一样能够出色地完成我们的需要 而且在跨平台时表现得更有优势     常用的布局有:    BorderLayout:将界面分割为上下左右以及中间一块区域的管理系统 在BorderLayout布局中 最多你只能放 个控件 如果超过 个控件 建议还是选用其他的布局系统吧     GridLayout:GridLayout是将用户界面切割为棋盘一样的布局管理系统 如果我们要设计一个类似于Windows中自带的计算器软件 GridLayout无疑是最佳选择     FlowLayout:FlowLayout与上述两类布局管理系统不太一样 在FlowLayout中 你不必指定每个控件放在哪 你只需要把控件加入到FlowLayout中 FlowLayout就会根据你添加控件的顺序依次放置控件 如果空间不够 会自动换行     在对这几个布局管理系统有了基本认识后 我们就一起来进入界面设计吧 在仔细观察了QQ游戏中 连连看 的设定后 我们可以发现 整个界面分为三个区 顶部是系统菜单区 占地面积最大的是用户游戏区 另外还有一个用户交互区 每个区域中都由若干控件组成     这么多控件 我们从哪开始入手呢?由于容器控件中可以放置其他控件 因此 我们只需要先确定放置的容器控件就可以了 既然已经知道需要使用容器控件的个数 接下来让我们就进入布局管理系统的选择 用GridLayout?似乎有点勉强 用FlowLayout?还有更好的选择吗?对了 我想你一定想到了是BorderLayout吧 如下图 所示     动手之前 大家一定要注意的是 界面的设计要先考虑好尺寸 不管是主程序界面的大小还是每个区域的大小 如果没有设计好合适的尺寸 将来改动起来会十分痛苦     下面便是相应的源程序:    import java awt *;  import javax swing *;    public class KyodaiUI extends JFrame {  public KyodaiUI() {  this setSize( ); //将窗体的大小设定为 *   this setDefaultCloseOperation(JFrame EXIT_ON_CLOSE);  this setResizable(false); //窗体不能改变大小  this setTitle( 连连看 ); //设置标题    JPanel toolBar = new JPanel();  toolBar setBackground(Color white);  toolBar setPreferredSize(new Dimension( ));    JPanel actionPanel = new JPanel(); //新建JPanel型的控件  actionPanel setBackground(Color yellow); //设置背景色  actionPanel setPreferredSize(new Dimension( )); //设置大小    JPanel contentPanel = new JPanel();  contentPanel setBackground(Color blue);  contentPanel setPreferredSize(new Dimension( ));  this getContentPane() add(toolBar BorderLayout NORTH);  this getContentPane() add(actionPanel BorderLayout EAST);  this getContentPane() add(contentPanel BorderLayout CENTER);  }    public static void main(String[] args) throws HeadlessException {  KyodaiUI kyodaiUI = new KyodaiUI();  kyodaiUI show();  }  }    让我们来看看上面这段程序是如何运行的 首先 extends JFrame表明了这是从JFrame中继承过来的 JFrame是最基本的顶层容器控件 实际上 在JDK中 以字母J打头的控件都是Swing控件 然后设置了容器的属性 其中 setDefaultCloseOperation(JFrame EXIT_ON_CLOSE)是用来告诉Java虚拟机 当用户点击窗体右上角的 关闭 按钮时 关闭该窗口进程 如果不这么做的话 你会发现虽然你可以点将窗口关闭 然而程序却没有退出 在接下来的代码中 我们为顶层容器添加了三个Panel容器 要注意的是 在AWT中 我们可以直接写为add(toolBar BorderLayout NORTH) 而在 Swing 中却一定要写成getContentPane() add(toolBar BorderLayout NORTH) 否则程序就会出错     现在大家可以放在编译运行看看 是不是和我的运行结果一样(见图 )?     边框     虽然我们使用了不同前景色来区别不同的区域 然而却没有层次感 加上边框一定会漂亮许多     在Java中 所有以J打头的Swing控件都可以使用setBorder方法来为自己设置边框 边框有很多种 线型 凸起 凹下 空的 你甚至可以自由组合形成个人风格 所有的Border都必须使用javax swing BorderFactory中提供的静态方法来创建 比如:    Border border = BorderFactory createBevelBorder(BevelBorder LOWERED   new Color( )   new Color( )   new Color( )   new Color( ));    现在 我们将toolBar setBackground(Color white)改为toolBar setBorder(border) 立体效果是不是已经出现了?    实战??写上自己的大名    现在我们已经有了一个能够运行的界面了 虽然它什么也做不了 但是请你别慌 罗马不是一天建成的     现在让我们在菜单区提供一个 关于 菜单 用来显示程序的信息 难道你不想让别人知道你的大名吗?Swing本身就提供了现成的按钮控件JButton 我们只需要创建一个新的按钮:JButton about = new JButton( 关于 );这个按钮该怎么放到菜单区而不是别的地方呢?我们可以加入下面的代码:toolBar add(about);咦 怎么点按钮没有反应?这是因为你还没有告诉程序点击按钮时要做什么事情呢 要为按钮添加事件响应 首先需要使用about addActionListener(this)来告诉程序监听按钮按下时的事件 由于ActionListener是一个程序接口 因此 我们在类的申明的地方也得做一点小小的修改:public class KyodaiUI extends JFrame implements ActionListener { }实现ActionListener接口是为了告诉程序我要进行事件处理了 当然 最后我们得添加响应事件的代码:    public void actionPerformed(ActionEvent e) {  if (e getSource() == about) {  JOptionPane showMessageDialog(this 我的大名 关于   JOptionPane INFORMATION_MESSAGE);  return ;  }  }    其中 e getSource() 表示当前触发事件的控件 由于我们的程序中往往会有多个以上的控件 这些控件都有可能产生事件 所以我们必须使用这个方法来找到产生事情的控件      小结     让我们一起来回顾一下今天所学的内容:首先我们了解了顶层容器 也知道了控件分为容器控件和非容器控件 同时还知道使用边框 最后 我们还小小的处理了一下按钮的事件     学而时习之 不亦说乎 就让我留点小小的作业 帮助大家巩固一下今天所学的内容:上面我们添加的按钮在菜单栏的中间 并不美观 lishixinzhi/Article/program/Java/hx/201311/25907

java的swing组件的使用

这些直接看对应JDK版本的java doc里面关于swing的部分,有很详细的索引页和每种控件的使用方法,还有jdk自己的一些sample。
这个oracle网站有教程
Swing是用于图形用户界面开发的一个全面解决方案,包括250多个类,在这里不能一一列出。本书仅使用Swing用户界面。
1.标 签 2.按 钮 3.文本域 4.文本区 5.列表框 6.组合框
7.复选框 8.单选按钮 9.滚动条 10.选项卡 11.对话框 12.菜 单
1.标 签
标签类JLabel是用于显示文字或图标的简单组件。JLabel的构造方法包括:
public JLabel()
public JLabel(Icon icon)
public JLabel(Icon icon, int horizontalAlignment)
public JLabel(String text)
public JLabel(String text, Icon icon, int horizontalAlignment)
public JLabel(String text, int horizontalAlignment)
在构造方法中,text指定标签的文字,icon指定标签的图标,horizontalAlignment指定文本或图标的水平对齐方式。
JLabel实例维护的属性包括:
表8.3 JLabel的属性 属性名
数据类型
访问
缺省值
disabledIcon
Icon
SG
灰色过滤图标
displayedMnemonic
Int
SG
——
horizontalAlignment
Int
CSG
LEFT
horizontalTextPosition
Int
SG
RIGHT
Icon
Icon
CSG
null
iconTextGap
Int
SG
4个像素
labelFor
Component
SG
null
Text
String
CSG
“”
verticalAlignment
Int
SG
CENTER
verticalTextPosition
int
SG
CENTER
注:在访问中,C=可在构造时设置/G=获取方法/S=设置方法
disabledIcon:标签被禁用时显示的图标。
displayedMnemonic:设置LabelFor属性后显示的助记符。
horizontalAlignment:标签内容的水平对齐方式。取值包括:SwingConstants.LEFT、SwingConstants.RIGHT和SwingConstants.CENTER。
horizontalTextPosition:文本相对于图标的水平位置;与水平对齐方式的有效值相同。
icon:标签在启用时显示的图标。
iconTextGap:标签的文本与图标之间的间隙,以像素点为单位。
labelFor:一个组件,它在标签的助记符被键入时获得焦点。
Text:标签显示的文本。
verticalAlignment:标签内容的垂直对齐方式。取值包括:SwingConstants.TOP、SwingConstants.BOTTOM和SwingConstants.CENTER。

阅读更多 >>>  电脑编程什么软件最好使

javaswingjtable边框设置颜色

1、创建一个类继承自DefaultTableCellRenderer。2、覆盖getTableCellRendererComponent。3、从super.getTableCellRendererComponent得到一个组件。4、设置边框并加色彩应用即可。

java中的swing设计界面时怎么加上背景图片。而不覆盖什么label等控件?

mport java.awt.Container;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class Test extends JFrame { public Test() { setBak(); //调用背景方法 Container c = getContentPane(); //获取JFrame面板 JPanel jp = new JPanel(); //创建个JPanel jp.setOpaque(false); //把JPanel设置为透明 这样就不会遮住后面的背景 这样你就能在JPanel随意加组件了 c.add(jp); setSize(540, 450); setVisible(true); } public void setBak(){ ((JPanel)this.getContentPane()).setOpaque(false); ImageIcon img = new ImageIcon("c://Sunset.jpg"); //添加图片 JLabel background = new JLabel(img);this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE)); background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight()); } public static void main(String[] args) { Test s = new Test(); s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}
mport java.awt.Container;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Test extends JFrame {
public Test() {
setBak(); //调用背景方法
Container c = getContentPane(); //获取JFrame面板
JPanel jp = new JPanel(); //创建个JPanel
jp.setOpaque(false); //把JPanel设置为透明 这样就不会遮住后面的背景 这样你就能在JPanel随意加组件了
c.add(jp);
setSize(540, 450);
setVisible(true);
}
public void setBak(){
((JPanel)this.getContentPane()).setOpaque(false);
ImageIcon img = new ImageIcon("c://Sunset.jpg"); //添加图片
JLabel background = new JLabel(img);this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
}
public static void main(String[] args) {
Test s = new Test();
s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
public class Test extends JFrame {
public Test() {
setBak(); //调用背景方法
Container c = getContentPane(); //获取JFrame面板
JPanel jp = new JPanel(); //创建个JPanel
jp.setOpaque(false); //把JPanel设置为透明 这样就不会遮住后面的背景 这样你就能在JPanel随意加组件了
c.add(jp);
setSize(540, 450);
setVisible(true);
}
public void setBak(){
((JPanel)this.getContentPane()).setOpaque(false);
ImageIcon img = new ImageIcon("c://Sunset.jpg"); //添加图片
JLabel background = new JLabel(img);this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
通过以下方式设置下背景就可以了:
background = new ImageIcon("images/backImage.png");
backImage = new JLabel(background);
backImage.setBounds(0, 0, background.getIconWidth(),
background.getIconHeight());
backPanel = (JPanel) this.getContentPane();
backPanel.setOpaque(false);
this.getLayeredPane().setLayout(null);
this.getLayeredPane().add(backImage, new Integer(Integer.MIN_VALUE));
backPanel.setLayout(new BorderLayout());
这样就可以把图片放在最下面了,效果图:

Java语言,使用Swing插件实现基于UDP的文字传输程序

package socket;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.Socket;
import javax.swing.*;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Color;
import javax.swing.JLabel;
public class Client extends JFrame implements Runnable {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JPanel btnPanel = null;
private JButton sendButton = null;
private JButton closeButton = null;
private JButton connButton = null;
private JTextArea outTextArea = null;
private List dialist = null;
Socket sock;
Thread thread;
BufferedReader in;
PrintWriter out;
public final static int DEFAULT_PORT = 8808;
boolean bConnected;
private JLabel imgLabel = null;
private JLabel img2Label = null;
private JLabel img3Label = null;
public Client() {
super();
initialize();
}
private void initialize() {
this.setSize(355, 267);
this.setContentPane(getJContentPane());
this.setTitle("客户端");
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setResizable(false);
}
private JPanel getBtnPanel() {
if (btnPanel == null) {
GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
gridBagConstraints3.gridx = 3;
gridBagConstraints3.gridy = 1;
GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
gridBagConstraints2.gridx = 1;
gridBagConstraints2.gridy = 1;
GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridy = 1;
btnPanel = new JPanel();
btnPanel.setLayout(new GridBagLayout());
btnPanel.setBounds(new Rectangle(1, 187, 347, 47));
btnPanel.add(getSendButton(), gridBagConstraints1);
btnPanel.add(getCloseButton(), gridBagConstraints2);
btnPanel.add(getConnButton(), gridBagConstraints3);
}
return btnPanel;
}
private JButton getSendButton() {
if (sendButton == null) {
sendButton = new JButton();
sendButton.setText("发送");
sendButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
String msg = outTextArea.getText();
if (msg!=null) { //此句无效???
processmsg(msg);
outTextArea.setText(null);
try {
sendmsg(msg);
} catch (IOException e2) {
processmsg(e2.toString());
}
}
}
});
}
return sendButton;
}
private JButton getCloseButton() {
if (closeButton == null) {
closeButton = new JButton();
closeButton.setText("关闭");
closeButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.exit(EXIT_ON_CLOSE);
}
});
closeButton.setText("关闭");
}
return closeButton;
}
private JButton getConnButton() {
if (connButton == null) {
connButton = new JButton();
connButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
startConnect();
}
});
connButton.setText("链接");
}
return connButton;
}
private JTextArea getOutTextArea() {
outTextArea = new JTextArea();
outTextArea.setLocation(new Point(0, 119));
outTextArea.setSize(new Dimension(269, 68));
return outTextArea;
}
public void processmsg(String str) {
this.dialist.add(str);
}
private List getDialist() {
dialist = new List();
dialist.setLocation(new Point(-1, 1));
dialist.setSize(new Dimension(271, 94));
return dialist;
}
public void run() {
while (true) {
try {
String msg = receivemsg();
Thread.sleep(100L);
if (msg != null) {
processmsg(msg);
}
} catch (IOException e) {
e.printStackTrace();
}catch (InterruptedException ei) {}
}
}
public void sendmsg(String msg)throws IOException {
out.println(msg);
out.flush();
}
public String receivemsg() throws IOException{
String msg = new String();
try {
msg = in.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return msg;
}
public void startConnect() {
bConnected = false;
try {
sock = new Socket("127.0.0.1", DEFAULT_PORT);

阅读更多 >>>  为什么28岁不能学java,32岁了,学习java编程还来得及吗?我是零基础的啊。求解答。

bConnected = true;
processmsg("connect ok!");
in =new BufferedReader(new InputStreamReader(sock.getInputStream()));
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())));
} catch (IOException e) {
e.printStackTrace();
processmsg("connection failed");
}
if(thread==null){
thread=new Thread(this);
thread.start();
}
}
private JPanel getJContentPane() {
if (jContentPane == null) {
img3Label = new JLabel();
img3Label.setText("");
img3Label.setSize(new Dimension(269, 23));
img3Label.setLocation(new Point(1, 94));
img2Label = new JLabel();
img2Label.setBounds(new Rectangle(270, 95, 81, 89));
img2Label.setIcon(new ImageIcon(getClass().getResource("/socket/10.jpg")));
img2Label.setText("");
imgLabel = new JLabel();
imgLabel.setBounds(new Rectangle(270, 0, 78, 94));
imgLabel.setIcon(new ImageIcon(getClass().getResource("/socket/3.jpg")));
imgLabel.setText("");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getBtnPanel(), null);
jContentPane.add(getOutTextArea(), null);
jContentPane.add(getDialist(), null);
jContentPane.add(imgLabel, null);
jContentPane.add(img2Label, null);
jContentPane.add(img3Label, null);
}
return jContentPane;
}
public static void main(String[] args) {
Client cl = new Client();
}
}
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
public class HostComputer1 extends JFrame implements ActionListener,Runnable{
DatagramSocket socket;
byte[]buf=new byte[256];
InetAddress address;
JTextArea t1=new JTextArea();
JTextField t2=new JTextField(20);
DatagramPacket dp=new DatagramPacket(buf,buf.length);
public HostComputer1(){
JScrollPane jsp=new JScrollPane(t1);
this.getContentPane().add(jsp,"Center");
JPanel p1=new JPanel();
p1.add(new JLabel("发送的信息"));
p1.add(t2);
t2.addActionListener(this);
this.getContentPane().add(p1,"South");
setTitle("我是主机1");
setSize(350,200);
setVisible(true);
(new Thread(this)).start();
}
public void actionPerformed(ActionEvent e){
try{
byte [] b=t2.getText().getBytes();
DatagramSocket socket=new DatagramSocket();
InetAddress address=InetAddress.getByName("localhost");
DatagramPacket packet=new DatagramPacket (b,b.length,address,6666);
socket.send(packet);
t1.append("发送的数据:"+t2.getText()+"\n");
t1.append("数据发送到:"+address+"\n");
t1.append("数据长度为:"+packet.getLength()+"\n");
}catch(Exception ee){ee.printStackTrace();}
}
public void run(){
try{
DatagramSocket socket=new DatagramSocket(8888);
while(true){
socket.receive(dp) ;
String received=new String(dp.getData(),0,dp.getLength());
t1.append("收到的数据:"+received+"\n");
t1.append("数据来自于:"+dp.getAddress()+"\n");
t1.append("数据长度为:"+dp.getLength()+"\n");
}
}catch(Exception e){System.out.println("Error"+e);}
}
public static void main(String [] args){
JFrame.setDefaultLookAndFeelDecorated(true);
Font font=new Font("JFrame",Font.PLAIN,14);
Enumeration key=UIManager.getLookAndFeelDefaults().keys();
while(key.hasMoreElements()) {
Object keys=key.nextElement();
if(UIManager.get(keys) instanceof Font)
UIManager.put(keys,font);
}
new HostComputer1();
}
}
若要生成一个名为 cal.jar 的可执行jar文件:(文件名可以是任意合法名字)
(这是我认为简单实用的一种方法,还有很多别的方法在此就不介绍了)
第一 把程序生成的所有字节码文件(即.class文件)放在同一个目录下(如:D:/chat/).
第二 在该目录下新建一个manifest.mf文件,文件内容格式如下(划线中内容):
manifest.mf文件中的格式:
--------------------------------
Main-Class: calDemo
--------------------------------
注意: calDemo代表主类名(即要运行的类名,只能有一个,不要文件扩展名)
Main与Class中间不是下划线,而是短横线
Main-Class:与calDemo中间必须要有空格
Main-Class: calDemo之后必须要回车
文件中还可以加入一些其他信息如:(先不要加,以免出错)
--------------------------------------------
Manifest-Version: 1.0
Created-By: 1.4.1_02 (Sun Microsystems Inc.)
--------------------------------------------
然后用jar命令生成可执行的jar文件,例如:
(执行该命令前先要转到该目录下 D:/chat/ )
jar cvfm cal.jar manifest.mf *.class
如果要生成EXE格式的,可以去网上下个exe4j

网站数据信息

"java swing 教程,Java语言,使用Swing插件实现基于UDP的文字传输程序"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:java swing 教程,Java语言,使用Swing插件实现基于UDP的文字传输程序的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!