我在Jlabel(java)中有一个HTML表,我想在JInternalFrame中显示JLabel 或者我想在没有JLabel的情况下将小型HTML表添加到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();
}
}
答案 0 :(得分:0)
由于注意力不集中看起来像是一个问题 - 只需将label
添加到jn
控件:
jn.add(label);
以下是修复的结果(我还在表格中添加了<tr><td>sdfsdfsf</td></tr>
。
<强> 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);
}
结果如下:
要更改标题栏的高度,您可以使用以下命令:
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);
结果:
希望这会有所帮助。