button z grafiką

0

Witam
Chciałem zrobić małą gierkę gdzie będzie uzytkownik "rzucał kostka" itd itd niestety mam dziwny problem mianowicie Grafika ma 50x50 i button(JButton graj) też ustawiłem na taki rozmiar ale niestety przy wyswietlaniu wystepuje jakis blad ...


import java.awt.Button;


public class Game extends JFrame {
	private String name1; 
	private String name2;
	private Button[] btnPlayer1;
	private Button[] btnPlayer2;
	
	public Game(String text, String text2)  {
		name1 = text;
		name2 = text2;
		init();
		prepare(); 
		
		
	}



	private void prepare() {
		
		setSize(500, 400);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLocationRelativeTo(null);
		setVisible(true);
		
	}

	private void init() {
		int i = 0; 
		int szerBtn1 = 30;
		int szerBtn2 = 370;
		int wysBtn = 50 ; 
		getContentPane().setLayout(null);
		
		JLabel lblPlayer1 = new JLabel("New label");
		lblPlayer1.setBounds(30, 10, 100, 20);
		getContentPane().add(lblPlayer1);
		
		JLabel lblPlayer2 = new JLabel("New label");
		lblPlayer2.setBounds(370, 10, 100, 20);
		getContentPane().add(lblPlayer2);
		
		lblPlayer1.setText(name1);
		lblPlayer2.setText(name2);
		
		btnPlayer1 = new Button[20];
		btnPlayer2 = new Button[20];
		///pierwszy rzad
		for(i = 0 ; i<10;i++){
			btnPlayer1[i] = new Button();
			btnPlayer2[i] = new Button();
	
			btnPlayer1[i].setBounds(szerBtn1, wysBtn, 25, 25);
			btnPlayer2[i].setBounds(szerBtn2, wysBtn, 25, 25);
			getContentPane().add(btnPlayer1[i]);
			getContentPane().add(btnPlayer2[i]);
			wysBtn +=25;		
		}
		
		wysBtn = 50; 
		szerBtn1+=25;
		szerBtn2+=25;
		////Drugi rzad 
		for(i = 0 ; i<10;i++){
			btnPlayer1[i+10] = new Button(); 
			btnPlayer2[i+10] = new Button();
			btnPlayer1[i+10].setBounds(szerBtn1, wysBtn, 25, 25);
			btnPlayer2[i+10].setBounds(szerBtn2, wysBtn, 25, 25);
			getContentPane().add(btnPlayer1[i+10]);
			getContentPane().add(btnPlayer2[i+10]);
			wysBtn +=25;		
		}
		
		final JButton graj = new JButton("Start");
		graj.setBounds(200, 50, 50, 50);
		graj.setBorder(null);
		graj.setBorderPainted(false);
		graj.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				
				graj.setIcon(new ImageIcon(Game.class.getResource("/img/2.jpg")));
				
			}
		});
		getContentPane().add(graj);
		
	}
	

	public static void main(String[] args) {
		new Game("imie 1", "imie 2");
	}
}
 

Zdjecie w zalaczniku

0

Może pokazałbyś jaki to błąd :)

0

zdjecie w zalaczniku

0
 getContentPane().setLayout(null);

.. łał! pomyśl może jednak na jakimś layout-em

0

Po pierwsze, to co napisał poprzednik - używaj layoutów.
Po drugie, korzystaj z jednej biblioteki graficznej, skor okno jest JFrame, to przyciski niech będą JButton.

0

niepoprawne wyświetlanie grafiki na przycisku może mieć coś wspólnego z tym że nie mam Layout ustawionego ?

0

Raczej nie, chodzi o to, żebyś nie nabywał złych nawyków.
Spróbuj zmienić skórkę (wygląd).

0

Tu masz przykład ustawiania grafiki dla przycisków oraz tła ramki:
https://github.com/DanielMichalski/eLicence-cat-b

Pakiet, chociażby: ui -> main_menu -> ...

0

Rozwiązaniem okazało się ustawienie Text na "". i grafika zaczeła się wyświetlać prawidłowo :)

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