关于chatboxjava的信息
本篇文章给大家谈谈chatboxjava,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java GUI 运行显示不出结果~~谢谢..
- 2、下面这个程序怎么处理才能正常运行 java.lang.IllegalMonitorStateException
- 3、Java Application程序与Java Applet程序的不同之处有那些
- 4、java用什么服务器
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的信息别忘了在本站进行查找喔。
发布于:2022-12-17,除非注明,否则均为
原创文章,转载请注明出处。