【问题标题】:how to add jtable and Jtextpane in single frame in java?如何在java中的单帧中添加jtable和Jtextpane?
【发布时间】:2010-07-17 15:18:26
【问题描述】:

我想显示包含我的课程信息的 jtable,它工作正常,因为我显示了一个单独的 jtable.... 现在的问题是我想在左侧显示 jtable(包含我的课程信息),以及在右侧的单个框架中显示 JtextPane,以便用户可以从 jtable 中选择项目并将其粘贴到 java 中的右侧(JTextPane)。 ………… 我不知道该怎么做...... 任何帮助将不胜感激......

提前致谢

【问题讨论】:

  • 我认为点数不够

标签: java swing layout


【解决方案1】:

从文章How to Use Tables 开始,我将从TableSelectionDemo 开始。它显示了如何更新 JTextArea 以响应 ListSelectionEvent

【讨论】:

    【解决方案2】:

    例如:

    public class ListTest extends JPanel{
    
    private JTable table;
    private String COLUMN1 = "COLUMN1";
    private JTextArea myTA;
    
    public ListTest() {
    
        table = new JTable(new Object[][]{{"1"}, {"2"}}, new Object[]{COLUMN1});
    
        TableColumn col = table.getColumn(COLUMN1);
        col.setIdentifier(COLUMN1);
        col.setHeaderValue("Data");
    
        table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
    
            @Override
            public void valueChanged(ListSelectionEvent e){
                if (!e.getValueIsAdjusting()){
                    int selRow = table.getSelectedRow();
    
                    final Object data = selRow >= 0 ? table.getModel().getValueAt(selRow, 0) : null;
                    SwingUtilities.invokeLater(new Runnable(){
    
                        @Override
                        public void run(){
                            if (data != null){
                                myTA.setText(data.toString());
                            }
                            else{
                                myTA.setText("");
                            }
    
                        }
                    });
                }
            }
        });
    
        setLayout(new BorderLayout());
    
        JScrollPane scroll = new JScrollPane(table);
        scroll.setPreferredSize(new Dimension(50, 200));
        add(scroll, BorderLayout.WEST);
        add(new JScrollPane(myTA = new JTextArea()), BorderLayout.CENTER);
    
    }
    
    public static void main(String[] args){
        JFrame frame = new JFrame("test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ListTest listTest = new ListTest();
        // Add content to the window.
        frame.add(listTest);
    
        // Display the window.
        frame.pack();
        frame.setSize(400, 200);
        frame.setVisible(true);
    }
    }
    

    建议:阅读优秀的 Using Swing Components 教程,其中包含对几乎所有基本问题的回答和很多示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-17
      • 2012-06-04
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-11
      • 2023-03-30
      • 2011-04-02
      相关资源
      最近更新 更多