我正在使用JDialog,其中添加了一个JPanel。 Jpanel的布局是BorderLayout。现在我有一些信息和图像显示在该面板中。所以我在Border.Center中添加了所有信息,并在Border.south中添加了图像。但图像没有正确定位。以下内容可能有助于理解:
图像显示在底部和水平中心。但我想要的是图像应该显示在Border.south的左上角。我怎样才能做到这一点?可能吗 ?
修改: -
public static void main(String[] args) {
JDialog dialog = new JDialog();
dialog.setSize(350, 350);
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
JScrollPane scroll = new JScrollPane(panel);
JEditorPane textPane = new JEditorPane();
textPane.setContentType("text/html");
StringBuffer buffer = new StringBuffer();
buffer.append(String.format("<div><b>Name:</b>%s</div>", "Harry"));
buffer.append(String.format("<div><b>Id:</b>%s</div>", "Joy"));
textPane.setText(buffer.toString());
panel.setBackground(Color.white);
panel.add(textPane,BorderLayout.CENTER);
JPanel jPanel = new JPanel(new FlowLayout(FlowLayout.LEADING));
JLabel lbl = new JLabel("Image will be here.");
lbl.setFont(new Font(Font.SANS_SERIF,0,40));
jPanel.add(lbl);
panel.add(jPanel,BorderLayout.SOUTH);
dialog.add(scroll);
dialog.setVisible(true);
}
在这段代码中,我添加了一个JLabel(“Image is here here。”)而不是图像来表示情况。
答案 0 :(得分:0)
将JPanel
FlowLayout(FlowLayout.LEFT)
添加到SOUTH
。将图像添加到JPanel,它应该最终位于SOUTH
区域的左上角。
答案 1 :(得分:0)
如果有人知道TableLayout
,那很容易做到。
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[][] sizes = {
{p,f},
{p,p,f}
};
panel.setLayout(new TableLayout(sizes));
panel.add(textPane, "0,0, 1,0");
panel.add(jPanel, "0,1");