Witam!
Pisze program, który dodaje obrazki w zależności od wybranego przycisku.
Wszystko jest ok. Przełączanie pomiędzy panelami i rozstawienie przycisków działa.
Dopiero kiedy dodaje label2 (który miał by dodawać rany obrazek) zaczynają się problemy.Kompilacja nie wykazuje błędów, ale po uruchomieniu programu actionListener'y do przycisków, rozmiary przycisków nie działają jak należy;/
Nie wiem co może być grane.Proszę o pomoc.
Zamieszczam kod całego programu z dodanym 1 labelem czyli (label2).
package src;
import java.applet.Applet;
import java.awt.AWTEvent;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.image.PixelGrabber;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JRadioButton;
import javax.swing.event.*;
import java.awt.Window;
import java.awt.image.BufferStrategy;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.Container;
import java.awt.Insets;
import java.awt.Dimension;
import java.lang.Object;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
/**
****************************
* @author ********* *
* created:************ *
****************************
*
*
* Prosty program pozwalający na tworzenie komiksowych twarzy.
*
*
*/
public class Main {
public static void main(String[] args) {
Ramka ramka = new Ramka();
}
}
class Ramka extends JFrame{
Ramka(){
stworzGUI();
}
//Tworzenie Kontenera i paneli
Container powZawartosci = getContentPane();
PanelMenu pm = new PanelMenu();
PanelDzialania pd = new PanelDzialania();
PanelTworcy pt = new PanelTworcy();
JLabel label2; //utworz label
public void stworzGUI() { //wywolaj metode stworzGUI
//IKONA
Toolkit zestaw = Toolkit.getDefaultToolkit();
Image rys = zestaw.getImage("mainIcon.png");
setIconImage(rys);
//KURSOR
Toolkit tk = Toolkit.getDefaultToolkit();//stworz obiekt typu toolkit (narzedzia)
Image myszka = tk.getImage("mouseIMG.png");//wczytaj obraz kursora
Cursor kursor = tk.createCustomCursor(myszka,//stworz kursor
new Point(1, 1), "");//punkt aktywny kursora
this.setCursor(kursor);//dodaj kursor do okna
//zmienne ramki
this.setResizable(false);//ustaw rozszerzanie okna - false;
this.setTitle("**********");//tytul okna
this.setVisible(true);//ramka staje sie widoczna
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Rozdzielczosc FULLSCREEN
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(0,0,screenSize.width, screenSize.height);
powZawartosci.setVisible(true); //kontener staje sie widoczny
//Dodaj panelMenu do kontenera
powZawartosci.add(pm);
//Dodaj komponenty do paneli;
pm.add(b1);
pm.add(b3);
pm.add(b2);
pd.add(przycisk1);
pd.add(label2);
pd.add(b4);
pt.add(b5);
//ROZMIESZCZENIE
Insets insets = pd.getInsets(); //stworz obiekt typu insets dla pd i pobierz "rozmiary"
Dimension size = przycisk1.getPreferredSize();
przycisk1.setBounds(100 + insets.left, 300 + insets.top,
size.width, size.height);
/////MENU
Insets insetsm = pm.getInsets(); //stworz obiekt typu insets dla pm i pobierz "rozmiary"
Dimension size0 = b1.getPreferredSize();
b1.setBounds(550 + insetsm.left, 400 + insetsm.top,
size0.width, size0.height);
Dimension size4 = b2.getPreferredSize();
b2.setBounds(550 + insetsm.left, 450 + insetsm.top,
size4.width, size4.height);
Dimension size5 = b3.getPreferredSize();
b3.setBounds(550 + insetsm.left, 500 + insetsm.top,
size5.width, size5.height);
///K MENU
Dimension size6 = b4.getPreferredSize();
b4.setBounds(50 + insets.left, 50 + insets.top,
size6.width, size6.height);
Dimension size7 = label2.getPreferredSize();
label2.setBounds(787 + insets.left, 287 + insets.top,
size7.width, size7.height);
/**
*metoda setBounds - (x, y, rozmiarx, rozmiary)
*/
przycisk1.setBounds(100, 300, 80, 40);
b1.setBounds(550, 400, 100, 40);
b2.setBounds(550, 450, 90, 40);
b3.setBounds(550, 500, 90, 40);
b4.setBounds(50, 50, 90, 40);
b5.setBounds(150, 150, 90, 40);
label2.setBounds(787, 287, 250, 150);
przycisk1.setActionCommand("przycisk1);
//Sluchacze
przycisk1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ImageIcon obraz1 = new ImageIcon("eyes.png"); //obrazki labeli
label2 = new JLabel(obraz1);
label2.setPreferredSize(new Dimension(250, 150));
if (e.getActionCommand().equals("przycisk1")) { label2.setIcon(obraz1); }
repaint();
}
});
b3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
b4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
powZawartosci.removeAll();
powZawartosci.add(pm);
powZawartosci.validate();
repaint();
}
});
b5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
powZawartosci.removeAll();
powZawartosci.add(pm);
powZawartosci.validate();
repaint();
}
});
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Panel 1 usunięty");
powZawartosci.removeAll();
powZawartosci.add(pd);
powZawartosci.validate();
repaint();
}
});
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Panel 1 usunięty");
powZawartosci.removeAll();
powZawartosci.add(pt);
powZawartosci.validate();
repaint();
}
});
}
private class PanelMenu extends JPanel {
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
pm.setLayout(null);//wylacz layout manager'a
pm.setVisible(true);//pm staje sie widoczne
Image logo = Toolkit.getDefaultToolkit().getImage("logo.png"); //wczytaj obrazek
g.drawImage(logo, 0, 0, null); //narysuj obrazek
repaint();//odmaluj komponent
}
}
private class PanelDzialania extends JPanel {
public void paintComponent(Graphics g)
{
super.paintComponent(g); //dziedziczenie metody paintComp.
Graphics2D g2 = (Graphics2D)g;
pd.setLayout(null);//wylacz layout manager'a
pd.setVisible(true);//pd staje sie widoczne
Image wfInRun2 = Toolkit.getDefaultToolkit().getImage("wfInRun2.png"); //wczytaj obrazek
g.drawImage(wfInRun2, 0, 0, null);//rysuj obrazek
repaint();//odrysuj okno
}
}
private class PanelTworcy extends JPanel {
public void paintComponent(Graphics g)
{
super.paintComponent(g); //dziedziczenie metody paintComp.
Graphics2D g2 = (Graphics2D)g; //rzutowanie
pt.setLayout(null);//wylacz layout manager'a
pt.setVisible(true);//pt staje sie widoczne
Image logo2 = Toolkit.getDefaultToolkit().getImage("logo.png"); //wczytaj obrazek
g.drawImage(logo2, 0, 0, null);//rysuj obrazek
repaint();//odrysuj okno
}
}
//obiekty
public JCheckBox przycisk1 = new JCheckBox("1");
public JCheckBox przycisk2 = new JCheckBox("2");
public JCheckBox przycisk3 = new JCheckBox("3");
private JButton b1 = new JButton("Uruchom");
private JButton b2 = new JButton("Twórcy");
private JButton b3 = new JButton("Zakończ");
private JButton b4 = new JButton("Wroc");
private JButton b5 = new JButton("Wroc");
}