alinzihao 2017-04-07 11:06 采纳率: 71.4%
浏览 1741
已采纳

java问题,以下的代码是关于“在jtable中添加按钮”的代码,其中的这句话(如下)是什么意思呢?

package home;

import java.awt.Component;
import java.awt.Dimension;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

import javax.swing.JTable;

import javax.swing.table.TableCellRenderer;

public class JTableButton implements TableCellRenderer

{

private JPanel panel;

private JButton button;  

private JFrame frame ;

public JTableButton()  
{  
    initButton();  

    panel = new JPanel();  
    // panel使用绝对定位,这样button就不会充满整个单元格。  
    panel.setLayout(null);  
    // 添加按钮。  
    panel.add(this.button);  

    frame = new JFrame () ;
    frame.add(this.panel) ;
    frame.setVisible(true) ;
    frame.setPreferredSize(new Dimension(500,500)) ;
    frame.pack() ; 
}  

private void initButton()  
{  
    button = new JButton("aaa");  

    // 设置按钮的大小及位置。  
    button.setBounds(0, 0, 50, 15);  

    // 在渲染器里边添加按钮的事件是不会触发的  
    // this.button.addActionListener(new ActionListener()  
    // {  
    //  
    // public void actionPerformed(ActionEvent e)  
    // {  
    // // TODO Auto-generated method stub  
    // }  
    // });  

}  


public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row,  
        int column)  
{  
    // 只为按钮赋值即可。也可以作其它操作,如绘背景等。  
    button.setText(value == "" ? "" : String.valueOf(value));  

    return panel;  
}  

public static void main (String [] args)
{
    new JTableButton () ;
}

}

button.setText(value == "" ? "" : String.valueOf(value)); 就是这一句,里面的那一大行是什么意思呢?我大概理解成返回value的字符串表示形式,但是 value==“”?“”这里面如果写入字符串又没有用啊。。如果我想往按钮里面添加字,那么只有在JButton构造方法里面添加,所以这句话有什么用呢?

  • 写回答

2条回答 默认 最新

  • 毕小宝 博客专家认证 2017-04-08 01:25
    关注

    首先,你是对的,中间的value==操作是一个三目运算,即问号表达式;
    其次,这句代码其实是在给button设置显示的文本值的,就是按钮上的文字,而panel.add(this.button); 才是添加按钮的操作,注释掉这行就不会被添加到Panel中了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?