我有一个 Applet 程序,可以直接从 Eclipse 运行以进行测试。我正在设置此 Applet 的窗口大小。但是,我看到有时小程序以较小的窗口打开,而不是设置实际的窗口大小,有时它以适当的设置大小打开setSize(550, 650);
我无法修复为什么有时会打开较小的窗口。有人可以建议我解决这个问题吗?
public class HomeApplet extends Applet implements ActionListener
{
public void init() {
titleStr = "Welcome to Application Home page!";
connectBtn = new Button("Submit");
connectBtn.addActionListener(this);
add(connectBtn);
connectBtn.setBounds(100, 120, 90, 20);
connectBtn.setEnabled(true);
setLayout( null );
setSize(550, 650);
sharedImage = new ImageIcon("sameer15.jpg" ).getImage();
}
public void paint (final Graphics g)
{
//super.paint(g);
int x = getSize().width;
int c1 = x/2;
Font titleFont = new Font("Arial", Font.BOLD, 20);
g.setFont(titleFont);
g.drawString(titleStr, c1-170, 20);
Font connectFont = new Font("Arial", Font.BOLD, 15);
g.setFont(connectFont);
g.drawString(connectStr, c1-190, 80);
g.drawImage(sharedImage, 100, 100, this);
System.out.println("drawImage");
}
}
有人可以建议我解决这个问题吗?
通过在源代码顶部的代码块中包含applet
元素,可以在 AppletViewer 中测试该 applet。
即变更:
public class HomeApplet extends Applet implements ActionListener
像这样的东西:
/* <applet code=HomeApplet width=550 height=650></applet> */
public class HomeApplet extends Applet implements ActionListener
然后编译并运行:
prompt> javac HomeApplet.java
prompt> appletviewer HomeApplet.java
笔记
setSize(550, 650);
这对于 applet 来说是完全错误的。applet 的大小应该在 HTML 中或通过其他方式设置。applet(实际上是网页中的guest)无权调整自己的大小(这就像您的访客来访,并且为了“更多的空间”而撞墙)。
问题
这些不是修辞问题。另一种说法是:我希望看到这些问题的答案。
为什么要编写小程序?如果是由于规范。老师,请参考Why CS teachers should stop teaching Java applets。
为什么是 AWT 而不是 Swing?请参阅我的答案Swing extras over AWT有很多很好的理由放弃使用 AWT 组件。
未来的问题
sharedImage = new ImageIcon("sameer15.jpg" ).getImage();
当您从命令行在 Applet Viewer 中进行测试或在网页中嵌入测试时,在 Java 控制台中看到AccessControlException
时,您将开始发现这是多么错误。..但是我们可以在单独的 Q & amp;A;;中处理
Eclipse 中的简单答案是:
如果你有多个 java 类打开,你“运行”程序从一个类以外的 init()和 setSize(550,650),那么窗口将默认为小。
使用 setSize()打开类并从那里运行它。问题解决了。
这让我发疯,直到我弄清楚。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(6条)