gpt4 book ai didi

java - 这个方法嵌套是如何工作的? [TableRowRenderingTip.java]

转载 作者:行者123 更新时间:2023-11-30 06:36:12 24 4
gpt4 key购买 nike

当在java文档中查找某些内容时,我意识到有某种我以前从未见过的嵌套,所以如果您能解释它是什么或者它是如何调用的,我将非常感激。

这是我在 StackOverflow 中提出的第一个问题,所以如果我违反了任何规则,我很抱歉。

代码:

private JComponent createData(DefaultTableModel model)
{
JTable table = new JTable( model )
{ //What are these brackets for? I know it contains a method but I've never seen a method "nested" with a variable initialization.
public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
{
Component c = super.prepareRenderer(renderer, row, column);

// Color row based on a cell value

if (!isRowSelected(row))
{
c.setBackground(getBackground());
int modelRow = convertRowIndexToModel(row);
String type = (String)getModel().getValueAt(modelRow, 0);
if ("Buy".equals(type)) c.setBackground(Color.GREEN);
if ("Sell".equals(type)) c.setBackground(Color.YELLOW);
}

return c;
}
};

不太了解如何正确使用问题编辑器。

提前致谢!

Here's完整的源代码。

最佳答案

您所发现的称为匿名类。在示例中,它扩展了 JTable 类,但因为它不想多次使用它,所以它没有为新类命名(因此是匿名的),而是立即创建它的实例,并将其存储在table变量中。在新类中,它重写了原始 JTableprepareRenderer 方法。

在这里您可以阅读有关匿名类的更多信息: https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html

关于java - 这个方法嵌套是如何工作的? [TableRowRenderingTip.java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45174024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com