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条)

报告相同问题?

悬赏问题

  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败