0

これは実行時にJTextPaneテキストが入力されています。複数行のテキストを取得したときに、 を保持している の高さが動的に変化するようにします。JPanelJTextPaneJPanelJTextPaneJTextPane

これは、これまでに得たものです。

     pnlChatMsgs = new JPanel(new BorderLayout());
     pnlChatMsgs.setBackground(new java.awt.Color(244, 244, 244));
     pnlMainTable.add(pnlChatMsgs, c);


     pnlMidLiveType = new JPanel(new BorderLayout());
     pnlMidLiveType.setPreferredSize(new Dimension(100, 30));

     JTextPane.setFont(new java.awt.Font("Lucida Grande", 0, 13));
     JTextPane.setText("<html></html>");
     JTextPane.setContentType("text/html");
     JTextPane.setForeground(new java.awt.Color(153, 153, 153));
     JTextPane.setBackground(new java.awt.Color(250, 250, 250));
     pnlMidLiveType.add(JTextPane, BorderLayout.NORTH);

     pnlChatMsgs.add(pnlMidLiveType, BorderLayout.SOUTH);
     pnlMidLiveType.setVisible(false);

サイズが大きくなったら、 JPanelJTextPaneの高さを変更したいと思います。pnlMidLiveType

どうすればこれを達成できますか?

4

1 に答える 1

0

次の例を考えてみましょう。拡張可能な JFrame と JPanel を示します。

    final JFrame frame = new JFrame();
    JPanel panel = new JPanel(new BorderLayout());
    JTextPane pane = new JTextPane();
    pane.addKeyListener(new KeyAdapter() {
        @Override
        public void keyTyped(KeyEvent e) {
            frame.pack();
        }
    });
    panel.add(pane, BorderLayout.CENTER);
    frame.setContentPane(panel);
    frame.pack();
    frame.setVisible(true);

JFrame#pack() はサイズ変更イベントをトリガーし、トリックを実行します。

于 2013-09-13T17:43:44.980 に答える