2

JPanelを追加したJDialogを使用しています。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 (「画像はここにあります。」) を追加しました。

4

2 に答える 2

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");
于 2013-03-04T09:31:56.810 に答える
0

JPanelに a を aとともに追加しFlowLayout(FlowLayout.LEFT)ますSOUTH。画像を JPanel に追加すると、領域の左上に表示されSOUTHます。

于 2011-06-03T06:52:02.847 に答える