在java applet中查看文本字段时出现问题

时间:2009-10-21 09:34:34

标签: java applet textfield

非常陌生的Java,只是玩弄它。我正在尝试将文本字段添加到表格下方,由于某种原因我无法看到它们。代码如下:

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class danTeamProject extends JApplet implements ActionListener
{

danTable aTable;
//private JLabel rowLabel, colLabel;

private JTextField rowNum;
private JTextField colNum;


public void init()  {



    JButton btnStart = new JButton("Start");
    this.add(btnStart);
    aTable = new danTable();
    this.add( aTable );

    //rowLabel = new JLabel( "Enter number of rows:" );
    rowNum = new JTextField( 1 );

    //colLabel = new JLabel( "Enter number of columns:" );
    colNum = new JTextField( 1 );

    //this.add (rowLabel);
    this.add (rowNum);

    //this.add (colLabel);
    this.add (colNum);

    rowNum.addActionListener(this);
    colNum.addActionListener(this);


}

public void actionPerformed(ActionEvent event) {
    String s = rowNum.getText();
    String sUp = s.toUpperCase();
    rowNum.setText(sUp);
}

}





import javax.swing.*;

class danTable extends JPanel {
public danTable() {
    Object[][] cellData = {
        {"row1-col1", "row1-col2"},
        {"row2-col1", "row2-col2"}};
    String[] columnNames = {"col1", "col2"};
    add(  new JTable(cellData, columnNames) ) ;
   }
}




`<!DOCTYPE HTML>
<HTML>
<HEAD>
</HEAD>
<BODY>
  <div>
    <APPLET
      CODE="danTeamProject"
      CODEBASE="."
      width=900 height=900>
      <PARAM name="boxbgcolor" value="cyan">
    </APPLET>
  </div>
</BODY>
</HTML>`

问题来自哪里的想法?我看过的所有其他帖子都建议检查小程序大小,但900x900应该可以容纳所有内容,对吧?提前谢谢......

另外,我知道我最近发布了一个关于同一个程序的问题。这是获得快速,可靠信息的最佳论坛......

3 个答案:

答案 0 :(得分:1)

您无法混合Applet和Swing组件:

例如,您不能将JTextField放在Applet内容窗格上。 如果要扩展到Applet而不是JApplet,请使用TextField而不是JTextField。

Button, Label, TextField, Panel  are for Applet
JButton, JLabel, JTextField, JPanel are for JApplet

请注意前缀。

由于您使用的是大部分Swing组件,因此请扩展JApplet而不是Applet

public class danTeamProject extends JApplet implements ActionListener
{    ...
     JButton button = new JButton();
}

答案 1 :(得分:1)

JApplet的默认布局为BorderLayout。因此,请尝试使用允许的BorderLayout约束添加组件; e.g。

this.add(rowNum, BorderLayout.NORTH);

如果BorderLayout对您来说太不灵活,而您又不想依赖第三方布局管理器,我建议您查看GridBagLayout或者从多个嵌套{{}组成您的小程序1}} S上。

另一个建议:您可能希望将GUI初始化代码从JPanel移动到init()构造函数。这使您可以进行JApplet决赛;我通常使用init()来启动应用程序使用的任何线程。

答案 2 :(得分:0)

你正在使用哪种布局?在我看来,你使用的默认布局只允许一个孩子(即你可以添加更多,但会被忽略)。

尝试将MiG Layout添加到a​​pplet,然后其他孩子就会显示出来。