该课程对于我儿子的学校仍然包括学生的学习Java AWT. 虽然我不认为这是最好的方法,我不能改变它,因为它是由教育部。 无论如何,我尽量帮助我的儿子与他的练习,因为我编程AWT自己很多年前。 但我有一个问题呈现的标签。 我什么实际后是建立一个简单表在AWT,因为表中的缺失。 该方法是采取一个GridLayout和添加标签。 这个工作很好,但我想有的分离行列之间的和行。 因此,我的分类标签和复盖画像这样:
在表I类做
public class Table extends Container {
...
this.setLayout(new GridLayout(rows+1, cols));
for(int i=0; i<cols; i++) {
for(int y=0; y< rows; y++) {
TableLabel label = new TableLabel(rowData[i][y].toString());
add(label);
}
}
...
}
这指的是
public class TableLabel extends Label {
public TableLabel(String labelText) {
super(labelText);
}
public void paint(Graphics g) {
super.paint(g);
System.out.println("paint");
Graphics2D g2 = (Graphics2D)g;
g2.setPaint(Color.BLUE);
g2.drawRect(getX(), getY(), getWidth(), getHeight());
}
public void update(Graphics g) {
super.update(g);
System.out.println("update");
Graphics2D g2 = (Graphics2D)g;
g2.setPaint(Color.BLUE);
g2.drawRect(getX(), getY(), getWidth(), getHeight());
}
}
呈现并没有改变。 根据调试器既不是油漆也没有更新过的呼吁。 也释放并不是写到控制台。 我是什么丢失? 该应用程序汇编和运行下Java11. 我知道,AWT和11版是一种有线,但是鉴于设置。 谢谢你提前。
@Override
. 也许-我不确定-drawRect(0, 0, ...
. 呼叫super.paint
没有必要的。