2015-02-06 26 views

回答

5

否(到JTextArea),但你应该能够做到这一点使用JTextPane,看到JTextPane#insertComponent更多细节

enter image description here

import java.awt.BorderLayout; 
import java.awt.EventQueue; 
import javax.swing.JComboBox; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JRadioButton; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.JTextField; 
import javax.swing.JTextPane; 
import javax.swing.UIManager; 
import javax.swing.UnsupportedLookAndFeelException; 
import javax.swing.table.DefaultTableModel; 
import javax.swing.text.BadLocationException; 
import javax.swing.text.Document; 

public class Test { 

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

    public Test() { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
       } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { 
        ex.printStackTrace(); 
       } 

       JFrame frame = new JFrame("Testing"); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.add(new TestPane()); 
       frame.pack(); 
       frame.setLocationRelativeTo(null); 
       frame.setVisible(true); 
      } 
     }); 
    } 

    public class TestPane extends JPanel { 

     public TestPane() { 
      setLayout(new BorderLayout()); 
      JTextPane tp = new JTextPane(); 

      Document doc = tp.getDocument(); 

      try { 
       tp.insertComponent(new JTextField("Hello world")); 
       doc.insertString(doc.getLength(), "\n", null); 
       tp.insertComponent(new JComboBox(new String[]{"Banana", "Apple", "Grape"})); 
       doc.insertString(doc.getLength(), "\n", null); 
       tp.insertComponent(new JRadioButton("Option A")); 
       doc.insertString(doc.getLength(), "\n", null); 
       tp.insertComponent(new JTable(new DefaultTableModel(10, 5))); 
       doc.insertString(doc.getLength(), "\n", null); 
      } catch (BadLocationException exp) { 
       exp.printStackTrace(); 
      } 

      add(new JScrollPane(tp)); 
     } 

    } 

} 
相关问题