0

对 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 应该可以容纳所有内容,对吧?提前致谢...

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

4

3 回答 3

1

您不能混合使用 Applet 和 Swing 组件:

例如,您不能在 Applet 内容窗格上放置 JTextField。如果要扩展到 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();
}
于 2009-10-21T09:57:52.617 回答
1

的默认布局JAppletBorderLayout. 因此,请尝试使用允许的BorderLayout约束添加组件;例如

this.add(rowNum, BorderLayout.NORTH);

如果BorderLayout对您来说太不灵活并且您不想依赖第三方布局管理器,我建议您查看GridBagLayout或从许多嵌套JPanel的 s 中组成您的小程序。

另一个建议:您可能希望将 GUI 初始化代码从init()构造JApplet函数中移出。这使您可以JTextField最终确定;我通常使用 init() 来启动应用程序使用的任何线程。

于 2009-10-21T10:19:50.923 回答
0

您使用的是哪个布局器?正如我所看到的,您使用的默认布局只允许一个孩子(即您可以添加更多但它们将被忽略)。

尝试将MiG Layout添加到小程序中,然后其他子项应该会出现。

于 2009-10-21T09:44:56.273 回答