JAVA - Labele

0

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");
   
}
0
przycisk1.setActionCommand("przycisk1);

Hm...
Co może być złego w tym kodzie ?
...
Brak apostrofów.

1

Środowiska (Eclipse, NetBeans), które pozwalają uruchomić program mimo błędów kompilacji powinny być dostępne tylko dla osób z certyfikatem i skończonymi studiami informatycznymi lub 5-letnim doświadczeniem programistyczym.

0

Nie używam Eclipsa czy też netBeans. Korzystam z JCreator Pro

0

Sugerujesz, że twoje IDE nie zauważyło tego

przycisk1.setActionCommand("przycisk1);

błędu? Na pewno zauważyło, zasygnalizowało i spytało czy mimo błędu uruchomić program. A Ty się zgodziłeś. Jeśli było inaczej, tzn. kompilator JCreator nie widział błędu, to natychmiast wywal JCreatora przez okno.

0

Tego błędu nie miałem w kodzie. Widocznie podczas tworzenia tego tematu nie chcący usunąłem.

0

Problem został już rozwiązany (przez dopisanie "), czy nie? Nie będę przecież analizował długiego kodu, który ponoć nie działa, ale na forum jest inny niż ten niedziałający u Ciebie.

0

Napisałem wszystko do nowa i jest ok;] Teraz tylko nie wiem jak uwzględnić zniknięcie obrazka labela kiedy ponownie przycisniemy JCheckBox (czyli kiedy checkbox nie jest zaznaczony)

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