非常陌生的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应该可以容纳所有内容,对吧?提前谢谢......
另外,我知道我最近发布了一个关于同一个程序的问题。这是获得快速,可靠信息的最佳论坛......
答案 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添加到applet,然后其他孩子就会显示出来。