Jak w temacie, nie dziala mi ustawianie Jbuttonow, nic sie nie dzieje kiedy ustawiam im setBounds, one nadal pozostaja ulozone po kolei bez mojej ingerencji, co robie nie tak?
0
1
Wyłączasz layout?
0
Dzieki za zainteresowanie, ale jak to zrobic?
1
setLayout(null)
0
Ale nawet kiedy mam wylaczony layoout to przyciski sie ukrywaja za tlem, pojawiaja sie jak na nie najade, nawet kiedy jest puty paint to sie tak dzieje
0
Kod proszę.
0
Jak juz wspomnialem, przyciski pojawiaja sie dopiero po najechaniu na nie.
package projekt;
import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.SwingConstants;
public class Projekt{
private Menu menu = new Menu();
private int szerokosc=600, wysokosc=400;
private int szybkosc=90;
private JFrame okno = new JFrame("Snake");
private Plansza p;
private JPanel kontener = new JPanel();
private JPanel settings = new JPanel();
public CardLayout cl = new CardLayout();
private JButton start = new JButton("Start");
private JButton opcje = new JButton("Opcje");
private JButton back = new JButton("Powrot");
private ButtonGroup rozmiar = new ButtonGroup();
private JRadioButton mala = new JRadioButton("Mała", false);
private JRadioButton srednia = new JRadioButton("Średnia", true);
private JRadioButton duza = new JRadioButton("Duża", false);
private ButtonGroup trudnosc = new ButtonGroup();
private JRadioButton latwa = new JRadioButton("Łatwa", true);
private JRadioButton tsrednia = new JRadioButton("Średnia", false);
private JRadioButton trudna = new JRadioButton("Trudna", false);
public Projekt(){
start.setBounds(0, 200, 50, 70);
start.setHorizontalTextPosition(SwingConstants.CENTER);
latwa.setBounds(100, 100, 100, 100);
kontener.setLayout(cl);
kontener.setPreferredSize(new Dimension(400,400));
//-------------------------
menu.add(start);
menu.add(opcje);
menu.setLayout(null);
start.setBounds(25,100,80,50);
opcje.setBounds(25, 200, 80, 50);
//--------------------
settings.add(back);
rozmiar.add(mala);
rozmiar.add(srednia);
rozmiar.add(duza);
trudnosc.add(latwa);
trudnosc.add(tsrednia);
trudnosc.add(trudna);
settings.add(latwa);
settings.add(tsrednia);
settings.add(trudna);
settings.add(mala);
settings.add(srednia);
settings.add(duza);
kontener.add(menu, "menu");
kontener.add(settings, "opcje");
cl.show(kontener, "menu");
start.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
p = new Plansza(szerokosc,wysokosc,szybkosc);
kontener.add(p,"gra");
kontener.setPreferredSize(new Dimension(szerokosc,wysokosc));
cl.show(kontener, "gra");
okno.pack();
}
});
opcje.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
cl.show(kontener, "opcje");
}
});
back.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
cl.show(kontener, "menu");
}
});
mala.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
szerokosc = 400; wysokosc = 400;
}
});
srednia.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
szerokosc = 600; wysokosc = 400;
}
});
duza.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
szerokosc = 800; wysokosc = 600;
}
});
latwa.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
szybkosc = 90;
}
});
tsrednia.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
szybkosc = 70;
}
});
trudna.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
szybkosc = 50;
}
});
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okno.setResizable(false);
okno.setVisible(true);
okno.setTitle("Snake");
okno.add(kontener);
okno.pack();
}
public static void main(String[] args) {
Projekt pro = new Projekt();
}
}
A tu klasa Menu z paintem:
package projekt;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Menu extends JPanel{
ImageIcon iim = new ImageIcon("menu.png");
private Image omenu;
public Menu(){
omenu = iim.getImage();
}
public void paint(Graphics g){
g.drawImage(omenu, 100, 0, null);
}
}
1
W klasie Menu zamień metodę paint na paintComponent:
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(omenu, 100, 0, null);
}
0
Kocham Cie