javax.jnlp.UnavailableServiceException: uninitialized問題
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.jnlp.FileContents;
import javax.jnlp.FileOpenService;
import javax.jnlp.ServiceManager;
import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class LoadImageAndScale extends JApplet
{
private ImageIcon image;//references image to display
private JPanel scaleJPanel;//JPanel containing the scale-selector
private JLabel percentJLabel;//label for JTextField
private JTextField scaleInputJTextField;//obtains user's input
private JButton scaleChangeJButton;//initiates scaling of image
private double scaleValue = 1.0; //scale percentage for image
//load image when applet is loaded
public void init()
{
scaleJPanel = new JPanel();
percentJLabel = new JLabel("scale percent:");
scaleInputJTextField = new JTextField("100");
scaleChangeJButton= new JButton("Set Scale");
// add components and place scaleJPanel in applet's NORTH region
scaleJPanel.add(percentJLabel);
scaleJPanel.add(scaleInputJTextField);
scaleJPanel.add(scaleChangeJButton);
add(scaleJPanel,BorderLayout.NORTH);
//register event handler for scaleChangeJButton
scaleChangeJButton.addActionListener(
new ActionListener()
{
//when the JButton is pressed,set scaleValue and repaint
public void actionPerformed(ActionEvent e)
{
scaleValue = Double.parseDouble(
scaleInputJTextField.getText())/100.0;
repaint();//causes image to be redisplayed at new scale
}// end method actionPerformed
}//end anonymous inner class
);//end call to addActionListener
//use JNLP services to open an image file that the user selects
try
{
//get a reference to the FileOpenService
FileOpenService fileOpenService =
(FileOpenService) ServiceManager.lookup(
"javax.jnlp.FileOpenService");
//get file's contents from the FileOpenService
FileContents contents =
fileOpenService.openFileDialog(null, null);
//byte array to store image's data
byte[] imageData = new byte[(int) contents.getLength()];
contents.getInputStream().read(imageData);//read image bytes
image = new ImageIcon(imageData);//create the image
//if image successfully loaded,create and add DrawJPanel
add(new DrawJPanel(),BorderLayout.CENTER);
}//end try
catch(Exception e)
{
e.printStackTrace();
}// end catch
}//end method init
//DrawJPanel used to display loaded image
private class DrawJPanel extends JPanel
{
//display image
public void paintComponent(Graphics g)
{
super.paintComponent(g);
//the following values are used to center the image
double spareWidth=
getWidth()-scaleValue*image.getIconHeight();
double spareHeight=
getHeight()-scaleValue*image.getIconHeight();
//draw image with scaled width and height
g.drawImage(image.getImage(),
(int) (spareWidth)/2,(int)(spareHeight)/2,
(int) (image.getIconWidth()*scaleValue),
(int) (image.getIconHeight()*scaleValue),this);
}//end method paint
}//end class DrawJPanel
}//end class LoadImageAndScale
----------------------------------
以上是源码。在eclipse里编的,然后直接运行run。但没有出现“open”对话框。是和java start有关吗?如何达成效果啊,可以用eclipse做到吗?
----------------------------
javax.jnlp.UnavailableServiceException: uninitialized
at javax.jnlp.ServiceManager.lookup(Unknown Source)
at LoadImageAndScale.init(LoadImageAndScale.java:61)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
这是错误信息。
---------
没有出现“open”对话框,这是为什么啊?
相关推荐
mongodb-linux-x86_64-ubuntu2004-8.0.13.tgz
mongodb-linux-x86_64-ubuntu2004-8.0.13
chromedriver-linux64-159.0.8135.0(Canary).zip
chromedriver-linux64-159.0.8135.0(Canary).zip
三相四桥臂电压不对称跌落补偿动态电压恢复器DVR(Simulink仿真实现)
内容概要:本文围绕三相四桥臂动态电压恢复器(DVR)在电压不对称跌落情况下的补偿能力展开,重点介绍了基于Simulink平台构建的仿真模型,用于研究和验证DVR对电网电压不平衡的动态补偿性能。系统采用三相四桥臂逆变器结构,利用其独立的中性线控制能力有效处理零序分量,结合多准PR(Proportional Resonant)控制策略实现对正负序电压分量的精确跟踪与快速响应,从而提升在不平衡负载或电网故障条件下DVR的补偿精度与系统稳定性。文中提供了完整的仿真模型及相关参考文献,涵盖控制算法设计、系统建模与参数整定等关键技术环节,适用于复杂电能质量问题的研究与教学演示。; 适合人群:电气工程、电力电子与电力系统相关专业的研究生、科研人员及从事电能质量治理的技术工程师;具备一定的电路理论、自动控制原理和Simulink仿真基础者更佳。; 使用场景及目标:①研究动态电压恢复器在三相电压不对称跌落工况下的补偿机制与控制策略;②掌握三相四桥臂逆变器在不平衡条件下的建模与控制方法;③深入理解多准PR控制器在正负序分离控制中的应用,提升对电能质量调节装置的设计与仿真能力; 阅读建议:建议结合提供的参考文献与说明文档,逐步搭建并调试Simulink仿真模型,重点关注控制器参数设计与系统动态响应特性,通过设置不同类型的电压跌落场景(如单相跌落、两相短路等)来验证控制策略的有效性与鲁棒性。
【MIMO无线编码】在瑞利衰落信道中比较2x2和4x4的BPSK调制系统(Matlab代码实现)
内容概要:本文通过Matlab代码实现,在瑞利衰落信道环境下对2x2和4x4 MIMO系统采用BPSK调制的性能进行仿真与比较,重点分析不同天线配置下的误码率(BER)表现,旨在探讨MIMO系统中天线数量增加对无线通信可靠性和传输性能的影响。研究涵盖了信道建模、信号调制解调、接收端检测算法等关键环节,并通过蒙特卡洛仿真获得统计结果,直观展示了MIMO技术在对抗多径衰落方面的优势。; 适合人群:具备通信原理基础知识和Matlab编程能力的高校学生、科研人员及从事无线通信系统设计的工程技术人员。; 使用场景及目标:①理解MIMO系统在瑞利衰落信道中的工作原理与性能评估方法;②掌握BPSK调制解调及典型MIMO检测技术的Matlab实现;③通过仿真对比不同规模MIMO系统的性能差异,为系统设计提供参考依据。; 阅读建议:建议读者结合Matlab代码逐段运行并观察仿真结果,深入理解各模块功能,同时可尝试修改参数(如信噪比范围、仿真次数、天线数目)以探究其对系统性能的影响,从而加深对MIMO无线编码技术的认知。
44-基于STC89C52粮库远程无线监测系统设计(设计说明书+全套资料).rar
项目44-基于STC89C52粮库远程无线监测系统设计 资料包括Proteus仿真+Keil程序+Altium Designer原理图+软件安装包+参考设计说明书+答辩PPT+设计流程图,保证资料完整性! 功能: (1)本设计以STC89C52单片机为控制核心,实现对粮库远程无线监测系统的稳定控制与高效管理。 (2)采用DHT11传感器检测温湿度,精准感知粮库内环境参数,为粮食储存状态监测提供关键数据。 (3)配备LCD1602显示屏实时显示温湿度信息,方便管理人员直观了解粮库环境,及时做出决策。 (4)设有无线模块实现远程数据传输,可远程监控粮库状态,提升管理效率,降低人工巡检成本。 (5)利用蜂鸣器与LED灯作为报警装置,当温湿度超出阈值时及时报警,资料助力学生掌握设计。


Java SE
