Java 从命令提示符转移到网络bean
我刚刚安装了Netbeans IDE 7.0,并尝试基于图像处理运行我的项目(当我使用传统方法使用命令提示符运行时,该项目执行良好),但小程序查看器显示Java 从命令提示符转移到网络bean,java,netbeans,applet,Java,Netbeans,Applet,我刚刚安装了Netbeans IDE 7.0,并尝试基于图像处理运行我的项目(当我使用传统方法使用命令提示符运行时,该项目执行良好),但小程序查看器显示start:applet未初始化,而编译(buildtask in Netbeans)成功 这里我附加了2个相关的Java文件,而整个项目还有3-4个用于图像渲染的Java文件 /* * <applet code=ImageFilterDemo width=350 height=450> * <param name=img
start:applet未初始化
,而编译(build
task in Netbeans)成功
这里我附加了2个相关的Java文件,而整个项目还有3-4个用于图像渲染的Java文件
/*
* <applet code=ImageFilterDemo width=350 height=450>
* <param name=img value=strawberry.jpeg>
* <param name=filters value="Grayscale+Invert+Contrast+Blur+Sharpen">
* </applet>
*/
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.awt.image.* ;
public class ImageFilterDemo extends Applet implements ActionListener {
Image img;
PlugInFilter pif;
Image fimg;
Image curImg;
LoadedImage lim;
Label lab;
Button reset;
Button histograph;
Dimension d;
static int iw, ih;
int pixels[];
static int w, h,just;
static int hist[] = new int[256];
static int max_hist = 0;
public void init() {
setLayout(new BorderLayout());
Panel p = new Panel();
add(p, BorderLayout.SOUTH);
reset = new Button("Reset");
histograph = new Button("Histograph");
reset.addActionListener(this);
histograph.addActionListener(this);
p.add(reset);
p.add(histograph);
StringTokenizer st = new StringTokenizer(getParameter("filters"), "+");
while(st.hasMoreTokens()) {
Button b = new Button(st.nextToken());
b.addActionListener(this);
p.add(b);
}
lab = new Label("");
add(lab, BorderLayout.NORTH);
img = getImage(getDocumentBase(),"strawberry.jpeg");
lim = new LoadedImage(img);
add(lim, BorderLayout.CENTER);
d = getSize();
w = d.width;
h = d.height;
try {
//img = getImage(getDocumentBase(), getParameter("img"));
MediaTracker t = new MediaTracker(this);
t.addImage(img, 0);
t.waitForID(0);
iw = img.getWidth(null);
ih = img.getHeight(null);
pixels = new int[iw * ih];
PixelGrabber pg = new PixelGrabber(img, 0, 0, iw, ih,
pixels, 0, iw);
pg.grabPixels();
} catch (InterruptedException e) { };
for (int i=0; i<iw*ih; i++) {
int pii = pixels[i];
int r = 0xff & (pii >> 16);
int g = 0xff & (pii >> 8);
int b = 0xff & (pii);
int y = (int) (.33 * r + .56 * g + .11 * b);
hist[y]++;
}
for (int i=0; i<256; i++) {
if (hist[i] > max_hist)
max_hist = hist[i];
}
}
public void actionPerformed(ActionEvent ae) {
String a = "";
try {
a = (String)ae.getActionCommand();
if (a.equals("Reset")) {
lim.set(img);
lab.setText("Normal");
}
else if(a.equals("Histograph")){
lab.setText("Histo_graph");
just=1;
lim.repaint();
}
else {
pif = (PlugInFilter) Class.forName(a).newInstance();
fimg = pif.filter(this, img);
lim.set(fimg);
lab.setText("Filtered: " + a);
}
repaint();
} catch (ClassNotFoundException e) {
lab.setText(a + " not found");
lim.set(img);
repaint();
} catch (InstantiationException e) {
lab.setText("could't new " + a);
} catch (IllegalAccessException e) {
lab.setText("no access: " + a);
}
}
}
// 2nd file
import java.awt.*;
public class LoadedImage extends Canvas {
Image img;
public LoadedImage(Image i) {
set(i);
}
void set(Image i) {
MediaTracker mt = new MediaTracker(this);
mt.addImage(i, 0);
try {
mt.waitForAll();
} catch (InterruptedException e) { };
img = i;
repaint();
}
public void paint(Graphics g) {
if (img == null) {
g.drawString("no image", 10, 30);
}
else if(ImageFilterDemo.just==1){
int x = (ImageFilterDemo.w - 256) / 2;
int lasty = ImageFilterDemo.h - ImageFilterDemo.h * ImageFilterDemo.hist[0] / ImageFilterDemo.max_hist;
for (int i=0; i<256; i++, x++) {
int y = ImageFilterDemo.h - ImageFilterDemo.h * ImageFilterDemo.hist[i] / ImageFilterDemo.max_hist;
g.setColor(new Color(i, i, i));
g.fillRect(x, y, 1, ImageFilterDemo.h);
g.setColor(Color.red);
g.drawLine(x-1,lasty,x,y);
lasty = y;
}
ImageFilterDemo.just=0;
}
else {
g.drawImage(img, 0, 0, this);
}
}
public Dimension getPreferredSize() {
return new Dimension(img.getWidth(this), img.getHeight(this));
}
public Dimension getMinimumSize() {
return getPreferredSize();
}
}
/*
*
*
*
*
*/
导入java.applet.*;
导入java.awt.*;
导入java.awt.event.*;
导入java.util.*;
导入java.awt.image.*;
公共类ImageFilterDemo扩展小程序实现ActionListener{
图像img;
插入式pif;
图像fimg;
图像校正;
加载图像lim;
标签实验室;
按钮复位;
按钮直方图;
维度d;
静态int-iw,ih;
整数像素[];
静态int w,h,just;
静态int hist[]=新int[256];
静态int max_hist=0;
public void init(){
setLayout(新的BorderLayout());
面板p=新面板();
添加(p,边界布局。南部);
重置=新按钮(“重置”);
Historograph=新按钮(“Historograph”);
reset.addActionListener(这个);
Historograph.addActionListener(此);
p、 添加(重置);
p、 添加(直方图);
StringTokenizer st=新的StringTokenizer(getParameter(“filters”),“+”;
而(st.hasMoreTokens()){
按钮b=新按钮(st.nextToken());
b、 addActionListener(此);
p、 添加(b);
}
实验室=新标签(“”);
添加(实验室,BorderLayout.NORTH);
img=getImage(getDocumentBase(),“草莓.jpeg”);
lim=新加载图像(img);
添加(lim,BorderLayout.CENTER);
d=getSize();
w=d.宽度;
h=d.高度;
试试{
//img=getImage(getDocumentBase(),getParameter(“img”);
MediaTracker t=新的MediaTracker(本);
t、 addImage(img,0);
t、 waitForID(0);
iw=img.getWidth(null);
ih=img.getHeight(null);
像素=新整数[iw*ih];
PixelGrabber pg=新的PixelGrabber(img、0、0、iw、ih、,
像素,0,iw);
第()页;
}catch(InterruptedException e){};
对于(int i=0;i>16);
int g=0xff&(pii>>8);
int b=0xff&(pii);
int y=(int)(.33*r+.56*g+.11*b);
历史[y]++;
}
对于(int i=0;i max_hist)
max_hist=hist[i];
}
}
已执行的公共无效操作(操作事件ae){
字符串a=“”;
试试{
a=(字符串)ae.getActionCommand();
如果(a.equals(“Reset”){
极限集(img);
lab.setText(“正常”);
}
如果(a.equals(“historograph”){
lab.setText(“历史图”);
刚好=1;
lim.repaint();
}
否则{
pif=(PlugInFilter)Class.forName(a).newInstance();
fimg=pif.过滤器(本,img);
极限集(fimg);
lab.setText(“过滤:+a”);
}
重新油漆();
}catch(classnotfound异常){
lab.setText(a+“未找到”);
极限集(img);
重新油漆();
}捕获(实例化异常){
lab.setText(“无法新建”+a);
}捕获(非法访问例外){
lab.setText(“无访问:+a”);
}
}
}
//第二档
导入java.awt.*;
公共类LoadeImage扩展画布{
图像img;
公共加载图像(图像i){
第(i)组;
}
空集(图像i){
MediaTracker mt=新的MediaTracker(本);
阿迪马奇山(i,0);
试试{
韦特福尔山();
}catch(InterruptedException e){};
img=i;
重新油漆();
}
公共空间绘制(图形g){
如果(img==null){
g、 抽绳(“无图像”,10、30);
}
else如果(ImageFilterDemo.just==1){
intx=(ImageFilterDemo.w-256)/2;
int lasty=ImageFilterDemo.h-ImageFilterDemo.h*ImageFilterDemo.hist[0]/ImageFilterDemo.max\u hist;
对于(inti=0;i,如果我没记错的话,您必须在javaWeb中运行小程序
Properties -> Run -> Run with Java Web Start.
我将在NetBeans中创建一个新项目,并了解它在默认情况下如何与applet一起工作
如果将小程序添加到项目中(新文件->Swing GUI表单->JApplet表单)
看看为您生成的init代码
@Override
public void init() {
/* Create and display the applet */
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
我认为您的代码需要这样一个块才能在NetBeans中运行“文件运行”或“项目运行”希望这个小教程有所帮助,当我们从传统的命令提示符运行到NetBeans时,在设置或编码方面是否需要做任何更改……当您在NetBeans中运行控制台时,是否有任何输出是的,这不是一个论坛——它是一个(社区可编辑的)问答网站。这似乎是一个学究式的区别,但这确实意味着讨论的重点不再集中在提供规范正确的问题答案上。特别是,你不应该发布更多的问题或“答案”作为对其他人的回应,而是编辑您的原始问题以反映更新。当您无法让自己的小程序正常工作时,最好不要向其他人提供建议(甚至链接)。毕竟,如果您自己严格遵循这些建议,显然是不起作用的。