Przycisk graficzny

0

Witam, chcialbym dodac przycisk graficzny i wszystko fajnie ale zamiast tego wyswietla sie SAM przycisk i znika tlo. Co robie nie tak ? Z gory dzieki za pomoc.

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class test extends JFrame {
	
	JButton but;
	
	
	public test(){
		
		setTitle("Hospital Management");
		setSize(900,582);
		
		setLocationRelativeTo(null);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
		setLayout(new BorderLayout());
		JLabel background=new JLabel(new ImageIcon("/Users/Dominik/Desktop/j.jpg"));
		add(background);
		background.setLayout(new FlowLayout());
		
		ImageIcon img = new ImageIcon("/Users/Dominik/Desktop/exit.png");
		JButton but = new JButton(img);
		but.setBounds(400, 400,img.getIconWidth(),img.getIconHeight());
		add(but);
	
		

		
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		test window = new test();
		window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		window.setVisible(true);
		

	}
}
0

Może utwórz sobie jakiś JPanel i tam wszystko "powrzucaj" a następnie dodaj ten JPanel do JFrame.

0

spróbuj zamieścić plik w folderze z projektem

1

Jak stosujesz BorderLayout, to musisz używać dwuargumentowej metody add(komponent, gdzie). Jeśli użyjesz metody add(komponent), to komponent zostanie umieszczony w centrum, w konsekwencji widać tylko ostatnio dodany komponent.

1

W ten sposób zadziała:

package btn_img;

import javax.swing.*;
import java.awt.*;

public class Ramka extends JFrame {
    public Ramka() {

        setTitle("Hospital Management");
        setSize(600, 600);
        setLayout(null);
        setLocationRelativeTo(null);

        JLabel background = new JLabel(new ImageIcon("tlo.jpg"));
        background.setBounds(0, 0, 600, 600);
        add(background);

        BtnPanel btnPanel = new BtnPanel();
        btnPanel.setBounds(50, 50, 200, 200);
        add(btnPanel, BorderLayout.SOUTH);

        repaint();

        setVisible(true);
    }

    public static void main(String[] args) {
        Ramka window = new Ramka();
        window.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        window.setVisible(true);
    }
}

class BtnPanel extends JPanel {
    public BtnPanel() {
        ImageIcon img = new ImageIcon("btn.jpg");
        JButton but = new JButton(img);
        add(but);
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1