重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.awt.*;
专注于为中小企业提供成都做网站、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业武胜免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
import java.awt.event.*;
import javax.swing.*;
import java点虐 .*;
import java.io.*;
public class ClientDemo01 {
public static void main(String[] args){
JFrame f=new JFrame("AA");
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JTextArea ta=new JTextArea(15,30);
ta.setEditable(false); //文本域只读
JScrollPane sp=new JScrollPane(ta); //滚动窗格
JTextField tf=new JTextField(20);
JButton b=new JButton("发送");
p1.add(sp);
p2.add(tf);
p2.add(b);
f.add(p1,"Center");
f.add(p2,"South");
f.setBounds(300,300,360,300);
f.setVisible(true);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Socket socket=null;
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
try{
socket=new Socket("192.168.0.4",5000);
bis=new BufferedInputStream(socket.getInputStream());
bos=new BufferedOutputStream(socket.getOutputStream());
MyThread01 mt=new MyThread01(bis,ta);
mt.start();
}catch(Exception e){
e.printStackTrace();
}
b.addActionListener(new ButtonActionListener01(tf,ta,bos));
}
}
class ButtonActionListener01 implements ActionListener{
JTextField tf;
JTextArea ta;
BufferedOutputStream bos;
public ButtonActionListener01(JTextField tf,JTextArea ta,BufferedOutputStream bos){
this.tf=tf;
this.ta=ta;
this.bos=bos;
}
public void actionPerformed(ActionEvent e){
String message=tf.getText();
if(!message.equals("")){
tf.setText(""); //清空文本框
ta.append("AA:"+message+"\n"); //添加到文本域并换行
try{
bos.write(message.getBytes());
bos.flush();
}catch(Exception ex){
System.out.println("发送失败");
}
}
}
}
class MyThread01 extends Thread{
BufferedInputStream bis;
JTextArea ta;
public MyThread01(BufferedInputStream bis,JTextArea ta){
this.bis=bis;
this.ta=ta;
}
public void run(){
try{
while(true){
byte[] b=new byte[100];
int length=bis.read(b);
String message=new String(b,0,length);
ta.append("BB:"+message+"\n");
}
}catch(Exception e){
e.printStackTrace();
}
}
} import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java点虐 .*;
import java.io.*;
public class ServerDemo01{
public static void main(String[] args){
JFrame f=new JFrame("BB");
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JTextArea ta=new JTextArea(12,30); //文本域,第一个参数为行数,第二个参数为列数
ta.setEditable(false); //文本域只读
JScrollPane sp=new JScrollPane(ta); //滚动窗格
JTextField tf=new JTextField(20);
JButton b=new JButton("发送");
p1.add(sp);
p2.add(tf);
p2.add(b);
f.add(p1,"Center");
f.add(p2,"South");
f.setBounds(300,300,360,300);
f.setVisible(true);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ServerSocket server=null;
Socket socket=null;
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
try{
server=new ServerSocket(5000);
//ta.append("等待AA连接...\n");
socket=server.accept();
//ta.append("AA已连接\n");
bis=new BufferedInputStream(socket.getInputStream());
bos=new BufferedOutputStream(socket.getOutputStream());
MyThread1 mt=new MyThread1(bis,ta);
mt.start();
}catch(Exception e){
e.printStackTrace();
}
b.addActionListener(new ButtonActionListener1(tf,ta,bos));
}
}
class ButtonActionListener1 implements ActionListener{
JTextField tf;
JTextArea ta;
BufferedOutputStream bos;
public ButtonActionListener1(JTextField tf,JTextArea ta,BufferedOutputStream bos){
this.tf=tf;
this.ta=ta;
this.bos=bos;
}
public void actionPerformed(ActionEvent e){
String message=tf.getText(); //获取文本框中的内容
if(!message.equals("")){
tf.setText(""); //清空文本框
ta.append("BB:"+message+"\n"); //添加到文本域并换行
try{
bos.write(message.getBytes());
bos.flush();
}catch(Exception ex){
System.out.println("发送失败!");
}
}
}
}
class MyThread1 extends Thread{
BufferedInputStream bis;
JTextArea ta;
public MyThread1(BufferedInputStream bis,JTextArea ta){
this.bis=bis;
this.ta=ta;
}
public void run(){
try{
while(true){
byte[] b=new byte[100];
int length=bis.read(b);
String message=new String(b,0,length);
ta.append("AA:"+message+"\n");
}
}catch(Exception e){
e.printStackTrace();
}
}
}
复杂的对话消息框可以参考JDialog
说明: JDialog的写法和JFrame基本类似. 可以自由添加组件等,代码量偏多.
简单的消息对话框可以使用JOptionPane
说明: 功能较少, 可拓展性不强,但是代码非常简洁. 适合大多数的应用场景.
效果图
举例:
public class Demo {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "提示:今天天气不错哟~");
JOptionPane.showMessageDialog(null, "提示: 6/0出错, 被除数不能为0! ", "警告",JOptionPane.ERROR_MESSAGE);
}
}
关于触发的举例
效果图
参考代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//该窗口继承自JFrame.
public class DemoFrame extends JFrame implements ActionListener{
JTextField jtf;
JButton jb;
public DemoFrame() {
jtf = new JTextField(8);
jtf.setText("Hello ~");
jb = new JButton("显示文本框的内容");
jb.addActionListener(this);
JPanel jp = new JPanel();
jp.add(jtf);
jp.add(jb);
add(jp);
setTitle("窗口");// 窗口标题
setSize(380, 185);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 通常添加这行代码,点击窗口右下角的关闭时会结束程序
setVisible(true);
}
// main方法
public static void main(String[] args) {
new DemoFrame();
}
@Override
public void actionPerformed(ActionEvent e) {
JButton jb1 = (JButton) e.getSource();
if(jb==jb1) {
JOptionPane.showMessageDialog(null, "文本框的内容是:"+jtf.getText());
}
}
}
拓展:
更多的关于JDialog和JOptionPane两个组件的使用方法, 可以查看java API文档
建议经常查看java的 API文档, 网上有很多的中文版. 不熟悉的类和方法,就看看, 是学习的利器~
if(true){
out.println("scriptalert('弹出来了');/script");
}
// 上面这个是写在JSP 页面上的.
"要求是(若用户名或密码为空(包括空格字符)则提示"
你的意思是不是你在做登陆的时候要求用户输入用户名和密码? 而且不能为空?
如果是这样的话,你可以在 提交 按钮上加一句 onclick ='checkinfo()' .调用一个 JS来进行判定.
JS可以写成...
if(document.getElementByID("用户名").value==null || document.getElementByID("用户名").value=="")
{
alert("请输入用户名");
retrun false ;
}else if(document.getElementByID("密码").value==null || document.getElementByID("密码").value=="")
{
alert("请输入密码");
retrun false ;
}else {
return true ;
}
这样的话,在你点提交的时候,会先进行JS的验证, 如果有其中一项没有填写则回弹出对应的提示框,并返回false.表单提交不了.......否则返回一个真值, 这个时候你的 表单就能顺利提交了....