关于EJB构件开发的问题,请高手指教 学习做一个Session Bean 你就应该回做了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 照抄如下代码远程接口:import javax.ejb.EJBObject;import java.rmi.RemoteException;public interface Caculator extends javax.ejb.EJBObject{ void Caculate() throws java.rmi.RemoteException;//生命要使用的计算方法 void Caculate(Flator f1) throws java.rmi.RemoteException;}主接口import java.io.Serializable;import java.rmi.RemoteException;import javax.ejb.CreateException;import javax.ejb.EJBHome;public interface CaculatorHome extends javax.ejb.EJBHome{ Caculator create() throws java.rmi.RemoteException,javax.ejb.CreateException;}import java.rmi.RemoteException; import javax.ejb.SessionBean;import javax.ejb.SessionContext;sessionbeanimport java.sql.*;import java.util.*;import javax.naming.*;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import javax.rmi.*;/** * @stereotype SessionBean * @homeInterface myStringHome * @remoteInterface myString * @statemode Stateless */public class CaculatorBean implements javax.ejb.SessionBean{ public void Caculate() { //实现计算器的方法 } public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext ctx){}} 谢谢指教,能不能把“实现计算器的方法”那里也填上啊。thanks 那么应用程序那边有要怎样做呢?啊荣兄!我的QQ是56668931你能找我一下指点一下我吗? 我找到了这样的计算器代码我要怎样把这些东西放进你上面给的程序中呢?就是具体那一句放哪里?我试过就是无数的ERROR,拜托再指点一下吧。THANK YOU VERY MUCH代码如下:import java.awt.*;import java.applet.AudioClip;public class NewMiniCalculator extends java.applet.Applet { // 1 = '+', 2 = '-', 3 = '*', 4 = '/', 5 = '=', 0 = 其他 int Operation, LastButtonType; //计算机的数字资料存储变量 long OnScreen = 0, OutOfScreen = 0; // 计算机的label参考值 Label lblDisplay; AudioClip beep; public void init() { beep=getAudioClip(getCodeBase(),"audio/beep.au"); GridBagLayout GBL = new GridBagLayout(); GridBagConstraints GBC = new GridBagConstraints(); //使用GridBagLayout作为计算机键盘的外观管理员 setLayout(GBL); //把applet的尺寸改为130*160 resize(130,160); //产生计算机的输出显示 lblDisplay = new Label(String.valueOf(OnScreen), Label.RIGHT); //设置lblDisplay的外观限制条件 GBC.fill = GridBagConstraints.BOTH; GBC.weightx = 1.0; GBC.weighty = 1.0; GBC.gridwidth = GridBagConstraints.REMAINDER; GBC.gridheight = 1; GBC.ipadx = 5; GBC.ipady = 5; GBL.setConstraints(lblDisplay, GBC); //把输出用的Label对象加入applet中 add(lblDisplay); //产生计算机键盘 CalculatorKeyBoard CKB = new CalculatorKeyBoard(); //设置计算机键盘的外观限制条件 GBC.weighty = 4.0; GBC.gridheight = 4; GBC.ipadx = 1; GBC.ipady = 1; GBL.setConstraints(CKB, GBC); //把计算机键盘加入applet中 add(CKB); //重置计算机的状态 resetCalculator(); } //使用自己设置的间距 public Insets insets() { return new Insets(10, 10, 10, 10); } public boolean action(Event evt, Object what) { //只处理Button产生的action,其他的不管 if (evt.target instanceof Button) { //在Button的action中,what是该Button上的文字 String targetLabel = (String)what; beep.play(); if (targetLabel.equals("C")) resetCalculator(); else if (targetLabel.equals("+")) setOperation(1); else if (targetLabel.equals("-")) setOperation(2); else if (targetLabel.equals("*")) setOperation(3); else if (targetLabel.equals("/")) setOperation(4); else if (targetLabel.equals("=")) doOperation(); else { if (LastButtonType == 0) OnScreen = OnScreen * 10L + Long.valueOf(targetLabel).longValue(); else OnScreen = Long.valueOf(targetLabel).longValue(); LastButtonType = 0; } //设置新的显示字符串 lblDisplay.setText(String.valueOf(OnScreen)); return true; } else return false; } //重置计算机的状态 void resetCalculator() { OnScreen = 0; OutOfScreen = 0; Operation = 0; LastButtonType = 0; } //设置运算种类 void setOperation(int Op) { OutOfScreen = OnScreen; Operation = Op; LastButtonType = Op; } //执行运算 void doOperation() { if (LastButtonType != 5) { long longTemp; switch (Operation) { case 1: longTemp = OutOfScreen + OnScreen; break; case 2: longTemp = OutOfScreen - OnScreen; break; case 3: longTemp = OutOfScreen * OnScreen; break; case 4: longTemp = OutOfScreen / OnScreen; break; default: longTemp = 0; break; } OutOfScreen = OnScreen; OnScreen = longTemp; } else { switch (Operation) { case 1: OnScreen += OutOfScreen; break; case 2: OnScreen -= OutOfScreen; break; case 3: OnScreen *= OutOfScreen; break; case 4: OnScreen /= OutOfScreen; break; default: OnScreen = 0; break; } } LastButtonType = 5; }}class CalculatorKeyBoard extends Panel { //计算机按钮的加入顺序 int AddOrder[] = { 8, 9, 10, 0, 5, 6, 7, 11, 2, 3, 4, 12, 1, 15, 14, 13 }; //计算机的Button参考值数组 Button btnKeyBoard[] = new Button[16]; CalculatorKeyBoard() { int i; //使用GridLayout来作为计算机键盘的外观管理员 setLayout(new GridLayout(4, 4, 5, 5)); //产生计算机的按钮 //产生'C'(清除键),先产生按钮对象后,再设置按钮显示字符串 btnKeyBoard[0] = new Button(); btnKeyBoard[0].setLabel("C"); //产生0到9的按钮 for (i = 1;i < 11;i ++) btnKeyBoard[i] = new Button(String.valueOf(i-1)); // 再产生'+', '-', '*', '/', '=' btnKeyBoard[11] = new Button("+"); btnKeyBoard[12] = new Button("-"); btnKeyBoard[13] = new Button("*"); btnKeyBoard[14] = new Button("/"); btnKeyBoard[15] = new Button("="); //把刚刚产生的计算机按钮加入applet中 for (i = 0;i < 16;i ++) add(btnKeyBoard[AddOrder[i]]); }} 我又不知道怎样做一个APPLET来调用这个BEAN啊。这是一个用来演示一个做好的BEAN就直接用一个应用程序掉用就能实现该BEAN的功能。这不是构件开发的目的吗?我是初学的,所以很多东西不懂,时间又紧,拜托大哥们帮帮忙。指点一下小弟吧 java代码结果输出,大家来探讨一下 关于swing客户端 上传问题 请各位大哥给个好办法,解决下这个java数组 java程序员证书 问题如何解决,JMF 框架使用 System.exit(0) 退出程序的问题 java有没有能够操作xsl的类? 如何在程序运行的时禁止用户进行任何键盘和鼠标操作 关于数组的几个简单问题,基础好的进!!! 求教java中操作mssql语句和存储过程几个常用的方法和函数? 我有很多以前发的帖子,没有人回答,我想把它们删除,如何操作? java 小程序和网页互动问题 问个端口通信的问题,如何向子网内的机器发送消息?????200分,急啊
远程接口:
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface Caculator extends javax.ejb.EJBObject
{
void Caculate() throws java.rmi.RemoteException;//生命要使用的计算方法
void Caculate(Flator f1) throws java.rmi.RemoteException;
}主接口
import java.io.Serializable;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface CaculatorHome extends javax.ejb.EJBHome
{
Caculator create()
throws java.rmi.RemoteException,javax.ejb.CreateException;
}import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;sessionbean
import java.sql.*;
import java.util.*;
import javax.naming.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import javax.rmi.*;
/**
* @stereotype SessionBean
* @homeInterface myStringHome
* @remoteInterface myString
* @statemode Stateless
*/
public class CaculatorBean implements javax.ejb.SessionBean
{
public void Caculate()
{
//实现计算器的方法
}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void setSessionContext(SessionContext ctx){}
}
那么应用程序那边有要怎样做呢?
啊荣兄!我的QQ是56668931你能找我一下指点一下我吗?
代码如下:
import java.awt.*;
import java.applet.AudioClip;public class NewMiniCalculator extends java.applet.Applet {
// 1 = '+', 2 = '-', 3 = '*', 4 = '/', 5 = '=', 0 = 其他
int Operation, LastButtonType;
//计算机的数字资料存储变量
long OnScreen = 0, OutOfScreen = 0;
// 计算机的label参考值
Label lblDisplay;
AudioClip beep; public void init() {
beep=getAudioClip(getCodeBase(),"audio/beep.au");
GridBagLayout GBL = new GridBagLayout();
GridBagConstraints GBC = new GridBagConstraints(); //使用GridBagLayout作为计算机键盘的外观管理员
setLayout(GBL); //把applet的尺寸改为130*160
resize(130,160); //产生计算机的输出显示
lblDisplay = new Label(String.valueOf(OnScreen), Label.RIGHT);
//设置lblDisplay的外观限制条件
GBC.fill = GridBagConstraints.BOTH;
GBC.weightx = 1.0;
GBC.weighty = 1.0;
GBC.gridwidth = GridBagConstraints.REMAINDER;
GBC.gridheight = 1;
GBC.ipadx = 5;
GBC.ipady = 5;
GBL.setConstraints(lblDisplay, GBC);
//把输出用的Label对象加入applet中
add(lblDisplay); //产生计算机键盘
CalculatorKeyBoard CKB = new CalculatorKeyBoard();
//设置计算机键盘的外观限制条件
GBC.weighty = 4.0;
GBC.gridheight = 4;
GBC.ipadx = 1;
GBC.ipady = 1;
GBL.setConstraints(CKB, GBC);
//把计算机键盘加入applet中
add(CKB); //重置计算机的状态
resetCalculator();
} //使用自己设置的间距
public Insets insets() {
return new Insets(10, 10, 10, 10);
} public boolean action(Event evt, Object what) {
//只处理Button产生的action,其他的不管
if (evt.target instanceof Button) {
//在Button的action中,what是该Button上的文字
String targetLabel = (String)what;
beep.play(); if (targetLabel.equals("C"))
resetCalculator();
else if (targetLabel.equals("+"))
setOperation(1);
else if (targetLabel.equals("-"))
setOperation(2);
else if (targetLabel.equals("*"))
setOperation(3);
else if (targetLabel.equals("/"))
setOperation(4);
else if (targetLabel.equals("="))
doOperation();
else {
if (LastButtonType == 0)
OnScreen = OnScreen * 10L
+ Long.valueOf(targetLabel).longValue();
else
OnScreen = Long.valueOf(targetLabel).longValue();
LastButtonType = 0;
}
//设置新的显示字符串
lblDisplay.setText(String.valueOf(OnScreen));
return true;
}
else
return false;
} //重置计算机的状态
void resetCalculator() {
OnScreen = 0;
OutOfScreen = 0;
Operation = 0;
LastButtonType = 0;
}
//设置运算种类
void setOperation(int Op) {
OutOfScreen = OnScreen;
Operation = Op;
LastButtonType = Op;
} //执行运算
void doOperation() {
if (LastButtonType != 5) {
long longTemp; switch (Operation) {
case 1:
longTemp = OutOfScreen + OnScreen;
break;
case 2:
longTemp = OutOfScreen - OnScreen;
break;
case 3:
longTemp = OutOfScreen * OnScreen;
break;
case 4:
longTemp = OutOfScreen / OnScreen;
break;
default:
longTemp = 0;
break;
}
OutOfScreen = OnScreen;
OnScreen = longTemp;
}
else {
switch (Operation) {
case 1:
OnScreen += OutOfScreen;
break;
case 2:
OnScreen -= OutOfScreen;
break;
case 3:
OnScreen *= OutOfScreen;
break;
case 4:
OnScreen /= OutOfScreen;
break;
default:
OnScreen = 0;
break;
}
}
LastButtonType = 5;
}
}class CalculatorKeyBoard extends Panel {
//计算机按钮的加入顺序
int AddOrder[] = { 8, 9, 10, 0, 5, 6, 7, 11,
2, 3, 4, 12, 1, 15, 14, 13 };
//计算机的Button参考值数组
Button btnKeyBoard[] = new Button[16]; CalculatorKeyBoard() {
int i;
//使用GridLayout来作为计算机键盘的外观管理员
setLayout(new GridLayout(4, 4, 5, 5)); //产生计算机的按钮
//产生'C'(清除键),先产生按钮对象后,再设置按钮显示字符串
btnKeyBoard[0] = new Button();
btnKeyBoard[0].setLabel("C");
//产生0到9的按钮
for (i = 1;i < 11;i ++)
btnKeyBoard[i] = new Button(String.valueOf(i-1));
// 再产生'+', '-', '*', '/', '='
btnKeyBoard[11] = new Button("+");
btnKeyBoard[12] = new Button("-");
btnKeyBoard[13] = new Button("*");
btnKeyBoard[14] = new Button("/");
btnKeyBoard[15] = new Button("="); //把刚刚产生的计算机按钮加入applet中
for (i = 0;i < 16;i ++)
add(btnKeyBoard[AddOrder[i]]);
}
}
用一个应用程序掉用就能实现该BEAN的功能。这不是构件开发的目的吗?
我是初学的,所以很多东西不懂,时间又紧,拜托大哥们帮帮忙。指点一下小弟吧