我刚开始使用applet,所以我不是很好。我最近尝试使用此代码:
public class AppletTest extends JApplet{
public void init(){
try{
SwingUtilities.invokeAndWait(new Runnable(){public void run(){
setSize(500,500);
JLabel lbl = new JLabel("Hello World");
add(lbl);
JTextPane pane = new JTextPane();
pane.setSize(200, 200);
add(pane);
}});
}catch(Exception e){
System.err.println("Error Occurred");
}
}
}
我打算做的是制作500乘500小程序,文本窗格为200乘200.但是,当我运行程序时,文本窗格闪烁了一小段正确的大小然后继续填充applet并覆盖我在applet中放置的任何其他东西。如果我展开applet(通过拖动角落来操纵它),文本窗格也会增长。我尝试了这个,并使用JButton和JPasswordField获得了相同的结果。有什么我想念的吗?我尝试了setBounds(int i,int j,int k,int l)但是我得到了相同的结果。有什么帮助吗?
答案 0 :(得分:1)
你需要改变两件事:
明确设置LayoutManager
(FlowLayout
很简单,在这里工作正常)
为setPreferredSize()
setSize()
而不是JTextPanel
醇>
以下是修改后的代码:
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JApplet;
import javax.swing.JLabel;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
public class AppletTest extends JApplet{
public void init(){
try{
SwingUtilities.invokeAndWait(new Runnable(){public void run(){
setSize(500,500);
// explicitly set a layout manager
setLayout( new FlowLayout( ) );
JLabel lbl = new JLabel("Hello World");
add(lbl);
JTextPane pane = new JTextPane();
// use setPreferredSize, not setSize
pane.setPreferredSize( new Dimension( 200, 200 ) );
add(pane);
}});
}catch(Exception e){
System.err.println("Error Occurred");
}
}
}