关于chatboxjava的信息

博主:adminadmin 2022-12-17 07:36:08 66

本篇文章给大家谈谈chatboxjava,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java GUI 运行显示不出结果~~谢谢..

/**

*备注:将panel1的布局方式改为BoxLayout,fix了一些其他细节,可参考,并附上运行后的图片。

*/

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.Rectangle;

import java.awt.TextArea;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.BoxLayout;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

import javax.swing.UIManager;

public class Chatroom extends JFrame implements ActionListener {

TextArea Area = new TextArea();

BorderLayout borderlayout1 = new BorderLayout();

JPanel panel1 = new JPanel();

GridLayout gridlayout1 = new GridLayout(2, 2);

JLabel Lab1 = new JLabel();

JTextField tf1 = new JTextField(10);

JLabel Lab2 = new JLabel();

JPanel panel2 = new JPanel();

FlowLayout flowlayout1 = new FlowLayout();

JButton send = new JButton();

JButton exit = new JButton();

public void crFrame() {

// this.setSize(200, 300);

this.setTitle("Chatroom");

send = new JButton("发送");

exit = new JButton("退出");

send.addActionListener(this);

exit.addActionListener(this);

tf1.setText("");

tf1.setBounds(new Rectangle(0, 0, 150, 120));

Lab2 = new JLabel("要说的话");

Lab2.setHorizontalAlignment(SwingConstants.CENTER);

// panel1.setLayout(gridlayout1);

panel1.setLayout(new BoxLayout(panel1,BoxLayout.Y_AXIS));

panel2.setLayout(flowlayout1);

Lab1 = new JLabel("聊天内容");

Lab1.setHorizontalAlignment(SwingConstants.CENTER);

panel1.add(Lab1);

panel1.add(Area);

panel1.add(Lab2);

panel1.add(tf1);

panel2.add(send);

panel2.add(exit);

this.getContentPane().add(panel1, BorderLayout.NORTH);

this.getContentPane().add(panel2, BorderLayout.CENTER);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.pack();

this.setVisible(true);

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == exit)

System.exit(0);

else if (e.getSource() == send) {

String str = "tom说:" + tf1.getText().trim();

tf1.setText("");

System.out.println(str);

Area.setText(Area.getText() + str + '\n');

}

}

public static void main(String[] args) {

try {

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

} catch (Exception e) {

e.printStackTrace();

}

new Chatroom().crFrame();

}

}

下面这个程序怎么处理才能正常运行 java.lang.IllegalMonitorStateException

首先你要了解这个异常为什么会抛出,这个异常会在三种情况下抛出:

1当前线程不含有当前对象的锁资源的时候,调用obj.wait()方法;

2当前线程不含有当前对象的锁资源的时候,调用obj.notify()方法。

3当前线程不含有当前对象的锁资源的时候,调用obj.notifyAll()方法。

现在看看你的代码,Hmaker类中的make方法中用到了同步代码块,加入你去掉synchronized(Ham.box){}这个代码块,运行的结果就是:

厨师甲:汉堡来了(总共5个)

Exception in thread "甲" java.lang.IllegalMonitorStateException

at java.lang.Object.notify(Native Method)

at test.thread.Hmaker.make(Hmaker.java:7)

at test.thread.Hmaker.run(Hmaker.java:21)

这是因为,你没有给这个代码块加锁,而当前线程又不含有Ham.box这个对象的锁资源,所以当其调用Ham.box.notify()方法的时候就抛出了这个异常。

同理,你给出的运行结果是你没有给Hassistant类中的sell方法加上同步代码块,具体的更改如下:

public void sell()

{

if(Ham.production == 0)

{

System.out.println("营业员:顾客朋友们,请稍微等一下,汉堡没了!!");

}

synchronized(Ham.box) {

try {Ham.box.wait();}

catch (InterruptedException e) {e.printStackTrace();}

Ham.sales++;

System.out.println("营业员:顾客好,汉堡上来了,(总共卖了:"+ Ham.sales +"个)");

}

}

给Ham.box对象加锁就可以了,这个异常其实很容易解决,他抛出的情况只有三种

希望能给你一点帮助,谢谢

Java Application程序与Java Applet程序的不同之处有那些

运行方式不同,程序结构不同,运行工具不同,受到的限制也不同

Java的用户程序分为两类:Java Application和Java Applet。这两类程序在组成结构和执行机制上都有一定的差异,主要体现在以下几方面: (1)运行方式不同。Java Application是完整的程序,可以独立运行;Java Applet程序不能单独运行,它必须嵌入到用HTML语言编写的Web页面中,通过与Java兼容的浏览器来控制执行

(2)运行工具不同。Java Application程序被编译以后,用普通的Java解释器就可以使其边解释边执行,而Java Applet必须通过网络浏览器或者Applet观察器才能执行。

(3)程序结构不同。每个Java Application程序必定含有一个并且只有一个main方法,而Applet程序则没有含main方法的主类,这也正是Applet程序不能独立运行的原因。

(4)受到的限制不同Java Application程序可以设计成能进行各种操作的程序,包括读/写文件的操作,但是 Java Applet 对站点的磁盘文件既不能进行读操作,也不能进行写 操作。

java用什么服务器

Java 的应用服务器很多,从功能上分为两大类,JSP 服务器和 Java EE 服务器,也可分其他小类。

JBoss AS

在J2EE应用服务器领域,Jboss是发展最为迅速的应用服务器。由于Jboss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得Jboss广为流行。另外,Jboss应用服务器还具有许多优秀的特质。

其一,它将具有革命性的JMX微内核服务作为其总线结构;

其二,它本身就是面向服务的架构(Service-Oriented Architecture,SOA);

其三,它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。因此,它是高度模块化的和松耦合的。Jboss用户的积极反馈告,Jboss应用服务器是健壮的、高质量的,而且还具有良好的性能。  为满足企业级市场日益增长的需求,Jboss公司从2003年开始就推出了24*7、专业级产品支持服务。同时,为拓展Jboss的企业级市场,Jboss公司还签订了许多渠道合作伙伴。比如,Jboss公司同HP、Novell、Computer Associates、Unisys等都是合作伙伴。

JOnAS

JOnAS是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。

JFox3.0

JFox 是 Open Source Java EE Application Server,致力于提供轻量级的Java EE应用服务器,从3.0开始,JFox提供了一个支持模块化的MVC框架,以简化EJB以及Web应用的开发! 如果您正在寻找一个简单、轻量、高效、完善的Java EE开发平台

chatboxjava的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、chatboxjava的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-17,除非注明,否则均为首码项目网原创文章,转载请注明出处。