Установите изображение в правильное положение в макете границы в java swing - PullRequest
2 голосов
/ 03 июня 2011

Я использую JDialog, внутри которого я добавил JPanel. Макет Jpanel - BorderLayout. Теперь у меня есть некоторая информация и изображение для отображения на этой панели. Поэтому я добавил всю информацию в Border.Center и добавил изображение в Border.south. Но изображение не правильно расположено. Следующее может помочь понять:

enter image description here

Изображение отображается внизу и в центре по горизонтали. Но я хочу, чтобы изображение отображалось в верхнем левом углу Border.south. Как я могу это сделать? Является ли это возможным

Edit: -

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 («Изображение будет здесь») вместо изображения для представления ситуации.

Ответы [ 2 ]

0 голосов
/ 04 марта 2013

Если кто-то знает 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");
0 голосов
/ 03 июня 2011

Добавьте JPanel с FlowLayout(FlowLayout.LEFT) к SOUTH. Добавьте изображение в JPanel, и оно должно появиться в верхнем левом углу области SOUTH.

...