Przycisk graficzny

Przycisk graficzny
T6
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 11 lat
  • Postów:4
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.

Kopiuj
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);
		

	}
}
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 13 godzin
  • Lokalizacja:Kraków
  • Postów:1694
0

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

T1
  • Rejestracja:ponad 16 lat
  • Ostatnio:prawie 11 lat
  • Postów:49
0

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

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
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.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
bakeraw2
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 5 lat
  • Postów:400
1

W ten sposób zadziała:

Kopiuj
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);
    }
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.