2017-09-17 12 views
1

私はJLabelの(Java)の中にHTMLテーブルを持っているが、私はJInternalFrameの でのJLabelを表示したいか、私はJLabelのなしのJInternalFrameに小さなHTMLテーブルを追加します。 どのように達成できますか? JLabelをヘッダーの代わりにボディに入れないようにします。JInternalFrameでJLabelを追加するには?

package code; 

    import javax.swing.JFrame; 
    import javax.swing.JInternalFrame; 
    import javax.swing.JButton; 
    import javax.swing.JLabel; 

    import java.awt.FlowLayout; 

    class JInternalFrameTest extends JFrame { 

     JInternalFrameTest() 
     { 
      setTitle("JInternalFrame"); 
      setJInternalFrame(); 
      setSize(700,300); 
      setVisible(true); 
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     } 

     void setJInternalFrame() 
     { 
      String htmlContent = "<html><body><table border = '1'>"; 
      htmlContent += "<tr><td>Hai</td></tr></table></body></html>"; 
      JLabel label = new JLabel(); 
      label.setText(htmlContent); 
      JInternalFrame jn = new JInternalFrame("I want jlabel here",true,true,true); 
jn.add(label); 
      jn.setLayout(new FlowLayout()); 
      jn.add(new JButton("JButton")); 
      jn.setVisible(true); 
      add(jn); 
     } 
    } 

    public class JavaApp { 
     public static void main(String[] args) {  
      JInternalFrameTest jn = new JInternalFrameTest(); 
     } 
    } 
+2

あなたは 'JLabel'を作っていますが、' JInternalFrame' ... –

+0

プラス簡潔[MCVE]に1つにこれを追加しましたことはありません。 –

+0

@Kevinアンダーソン、https://docs.oracle.com/javase/8/docs/api/javax(私は、ヘッダの代わりにJLabelのを望む) – srinivas

答えて

0

による不注意に問題のように見える - ちょうどあなたのlabeljnにコントロールを追加:ここで

jn.add(label); 

を(私はまた、あなたのテーブルに<tr><td>sdfsdfsf</td></tr>を追加した修正の結果である enter image description here

を。

UPD: 問題のいくつかの明確化の後には、この新しいラベルがなければならないことを決定しましたJInternalFrameのタイトルバーに追加されました。また、行うことができます。

void setJInternalFrame() { 
    String htmlContent = "<html><body><table border ='1' bgcolor='#EEEEEE'>" 
       + "<tr><td>Hai</td></tr></table></body></html>"; 

    JInternalFrame jn = new JInternalFrame("I want jlabel here", true, true, true); 

    JComponent titleBar = ((BasicInternalFrameUI) jn.getUI()).getNorthPane(); 

    JLabel label = new JLabel(); 
    label.setText(htmlContent); 
    label.setBounds(128, 0, 40, 20); 
    titleBar.add(label); 

    jn.setLayout(new FlowLayout()); 
    jn.add(new JButton("JButton")); 
    jn.setVisible(true); 
    add(jn); 
} 

結果は以下のことになります。

enter image description here

を使用すると、以下のコマンドを使用することができ、タイトルバーのために高さを変えるために:

titleBar.setPreferredSize(new Dimension(titleBar.getPreferredSize().width, 100)); 
// don't forget to set a proper size for the label 
label.setBounds(128, 10, 40, 100); 

結果:

enter image description here

は、これが役立つことを願っています。

+0

私はこれを(sdfsdfsc)Headerの代わりに使用します。 – srinivas

+0

@srinivasあなたはJButtonの上にそれを持っていますか?それはあなたのhtmlを書く方法に依存します。私のhtmlは単なる例に過ぎませんでした。 =) –

+0

上記のスクリーンショットでは、私はHTMLテーブルを(私はここにjlabelが必要です)、Jbuttonの上でなく横にしたいですが、可能ならばお勧めしますか? – srinivas

関連する問題