Java jtable单元格中的按钮和文本框对齐

Java jtable单元格中的按钮和文本框对齐,java,swing,jtable,layout-manager,tablecellrenderer,Java,Swing,Jtable,Layout Manager,Tablecellrenderer,我有一个表格,在一些单元格中有按钮和文本框。现在我可以将这两个组件都放在表格单元格中。谢谢你的代码。现在我的问题是,我必须对齐这些组件,使按钮位于单元格的最右边,文本框应从单元格的最左边开始到按钮的开始。(简单地说,它们应该彼此相邻并占据整个单元格。)如何在单元格内对齐它们 现在看起来是这样的, 但我想看到的是这样的景色 我看过代码,但不知道如何在表中使用它 任何帮助都将不胜感激。AJPanel带BorderLayout,您可以将JTextField放在BorderLayout.CENTER

我有一个表格,在一些单元格中有按钮和文本框。现在我可以将这两个组件都放在表格单元格中。谢谢你的代码。现在我的问题是,我必须对齐这些组件,使按钮位于单元格的最右边,文本框应从单元格的最左边开始到按钮的开始。(简单地说,它们应该彼此相邻并占据整个单元格。)如何在单元格内对齐它们

现在看起来是这样的,

但我想看到的是这样的景色

我看过代码,但不知道如何在表中使用它


任何帮助都将不胜感激。

A
JPanel
BorderLayout
,您可以将
JTextField
放在
BorderLayout.CENTER
中,将
JButton
放在
BorderLayout.EAST


作为将来的参考:如果您正在寻找
LayoutManager
a
JPanel
,请将
BorderLayout
中的
JTextField
BorderLayout中的
JButton
添加到
中。EAST
应该这样做

作为将来的参考:如果您正在寻找
LayoutManager

  • JPanel
    已经实现了
    FlowLayout
    然后接受了来自其孩子的
    PreferredSize

  • 请注意,一切都取决于您的
    TableCellRenderer
    TableCellEditor

      • JPanel
        已经实现了
        FlowLayout
        然后接受了来自其孩子的
        PreferredSize

      • 请注意,一切都取决于您的
        TableCellRenderer
        TableCellEditor



      您的意思是说我应该将jpanel添加到表格单元格中,然后将这两个组件添加到该面板。我的意思是,如果渲染器将返回如上所述的面板,您将获得所需的结果。谢谢。。你让我知道表格单元格不仅用于数据,也用于面板,或者可能是我们想要插入的内容:)@Che
      ClassCastException
      来自
      myEditor.setCompValues((MyComponents)值)。在该方法中传递的值是
      TableModel
      中包含的值,但是我的表模型包含许多列,我只需要为一列设置按钮和文本框,其余的列都像往常一样具有数据。因此,我仅对该列使用此渲染。这是错误的做法吗?或者我应该传递整行数据并使用这个渲染类来填充行数据。如果我错了,请解释。您的意思是说我应该将jpanel添加到表格单元格,然后将这两个组件添加到该面板。我的意思是,如果渲染器将返回如上所述的面板,您将获得所需的结果。谢谢Robin。。你让我知道表格单元格不仅用于数据,也用于面板,或者可能是我们想要插入的内容:)@Che
      ClassCastException
      来自
      myEditor.setCompValues((MyComponents)值)。在该方法中传递的值是
      TableModel
      中包含的值,但是我的表模型包含许多列,我只需要为一列设置按钮和文本框,其余的列都像往常一样具有数据。因此,我仅对该列使用此渲染。这是错误的做法吗?或者我应该传递整行数据并使用这个渲染类来填充行数据。如果我错了,请解释。谢谢。我试试看。看来这会解决我的问题:)别忘了将EmtyBorders添加到JPanel中,在编辑器和渲染器中,我已经用代码更新了我的帖子。我得到一个类强制转换异常。请看一看,你能告诉我哪里错了吗?我只想问一件事。。您编写的示例适用于整个表的行。但我所做的只是一个专栏。这是我正在做的正确方法,还是应该像您所做的那样对整行使用渲染。谢谢。我试试看。看来这会解决我的问题:)别忘了将EmtyBorders添加到JPanel中,在编辑器和渲染器中,我已经用代码更新了我的帖子。我得到一个类强制转换异常。请看一看,你能告诉我哪里错了吗?我只想问一件事。。您编写的示例适用于整个表的行。但我所做的只是一个专栏。这是我正在做的正确方法,还是应该像您所做的那样对整行使用渲染。