Установка моего компонента в указанном месте

То, что я хочу сделать, это поместить мой компонент ближе к правой стороне моего приложения. Второй вариант - поместить его в указанные координаты x,y. Однако я пытался setBounds()setLocation() а также add(component, BorderLayout.LINE_END) funcions. Ничто не работает для меня. Что не так с моим кодом?

public class MapaSwiata extends JPanel implements ActionListener {

    private BufferedImage mapa;
    private File imageFile;

    public MapaSwiata(){
        super();

        imageFile = new File("C:\\Users\\Katie\\Documents\\Eclipse\\Samolot\\src\\Pics\\img_mapa.jpg");

        try {
            mapa = ImageIO.read(imageFile);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        JOutlookBar outlookBar = new JOutlookBar();

        outlookBar.addBar( "Pogoda", getDummyPanel("One"));
        outlookBar.addBar( "Informacje o locie", getDummyPanel("Two" ));
        outlookBar.addBar( "Rozkład Lotow", getDummyPanel( "Three" ) );
        outlookBar.setVisibleBar( 2 );

        add(outlookBar, BorderLayout.LINE_END); 
    }

    public static JPanel getDummyPanel( String name )
    {
        JPanel panel = new JPanel( new BorderLayout() );
        panel.add( new JLabel( name, JLabel.CENTER ) );
        return panel;
    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub
    }

    @Override
    public void paintComponent(Graphics g) {
        Graphics2D g2d = (Graphics2D) g;
        g2d.drawImage(mapa, 0, 0, getWidth()-300, getHeight()-150, null);
    }
}

Я также пытался положить в JButton или что-то другое. Все всегда появляется в верхнем центре приложения. Извините за польские имена переменных.

заранее спасибо

1 ответ

Если ты хочешь это BorderLayout.LINE_END имеет эффект, вы должны применить BorderLayout к Container, Для этого просто добавьте

setLayout(new BorderLayout());

вашему конструктору MapaSwiata(),

ПРИМЕЧАНИЕ. Ваши дочерние панели не требуют BorderLayout,

Другие вопросы по тегам