Problem z nową klasą

0

Witam
mam taki problem chciałbym utworzyć zakładkę w ktorej będą 2 przyciski 'Yes' i 'No', zdefiniowałem je, a następnie chciałem wywolać, ale tu już program (używam NetBeans'a) podkreśla na czerwono moje komendy i nie wiem co tu zrobiłem źle
kod programu

package cw1;
import java.awt.;
import javax.swing.
;

public class Proba extends JFrame{
public Proba(String s){
super(s);
Container cp = getContentPane();
JTabbedPane s1=new JTabbedPane();
s1.addTab("Zakladka 1", new JButton("zakladka"));
s1.addTab("Zakładka 2", new w1());
add(s1);
}
class w1 extends JPanel{
JButton e1=new JButton("Yes");
JButton e2=new JButton("No");
cp.add(e1); //ta linia jest źle
cp.add(e2); //ta też jest źle

}

public static void main(String[] args) {

    Proba rama=new Proba("Rameczka");
    rama.setSize(400,250);
    rama.setVisible(true);
           
   
         // TODO code application logic here
}

}

0

a skąd klasa w1 ma wiedzieć co to 'cp' ? Jak podkreśla na czerwono to wypisuje też powód podkreślenia!

0

tak ja to doskonale wiem, ale kombinowałem już na 100 sposobów:
JButton e1=new JButton("Yes");
JButton e2=new JButton("No");
Container cp = getContentPane();
cp.add(e1);
cp.add(e2); //w tym przypadku program wyświetla komunikat "package cp does no exist"
póżniej tak
JButton e1=new JButton("Yes");
JButton e2=new JButton("No");
add(e1);
add(e2); //
i zawsze byk w tym samym miejscu

0

W przypadku klasy Proba gui budowales w konstruktorze, ale przy klasie w1 juz jakos sie konstruktor zgubil:

Nie wiem tez, czy zamierzone bylo, zeby klasa w1 byla klasa wewnetrzna, gdyz na razie to nie jest potrzebne, ale zostawiam w ten sposob.

package cw1;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;


public class Proba
	extends JFrame
	{
	public Proba(String s)
		{
		super(s);
		JTabbedPane s1 = new JTabbedPane();
		s1.addTab("Zakladka 1", new JButton("zakladka"));
		s1.addTab("Zakładka 2", new w1());
		add(s1);
		}
	class w1
		extends JPanel
		{
		public w1()
			{
			JButton e1 = new JButton("Yes");
			JButton e2 = new JButton("No");
			add(e1); // ta linia jest źle
			add(e2); // ta też jest źle
			}
		}
	public static void main(String[] args)
		{
		Proba rama = new Proba("Rameczka");
		rama.setSize(400, 250);
		rama.setVisible(true);
		// TODO code application logic here
		}
	}
0

Dzięki kolego za pomoc, dopiero stawiam pierwsze kroki w Javie, dlatego może takie głupie błędy robie.

P.S. Fajną gierkę zrobiłeś mógłbym dostać kod źródłowy na [email protected], albo jakiegoś linka, bo ten podany u Ciebie w opisie nie idzie.

0

nie chciałem zakładać nowego tematu, więc napisze tu: znowu jakiś problem z kodem program pisze, że "nie może znaleźć symbolu i", co dziwne część i sobie dobrze łączy dopiero wywala problem przy drugiej pętli for, pomóżcie koledzy

package cw1;

import javax.swing.*;

public class Proba extends JFrame{
public Proba(String s){
super(s);
JMenu [] main = {
new JMenu("Opcja1"),
new JMenu("Opcja2"), new JMenu("Opcja3")};
for (int i=0; i<3; i++)
for (int k=0; k<3; k++)
main[i].add(new JMenuItem("Element" + (i+1) + "-"+ (k+1)));
JMenuBar mb=new JMenuBar();
for (i=0; i<main.length; i++) mb.add(main[i]); // w tej linijce podkreśla mi wszystkie i
setJMenuBar(mb);

    }


public static void main(String[] args) {

    Proba rama=new Proba("Rameczka");
    rama.pack();
    rama.setVisible(true);
           
   
         // TODO code application logic here
}

}

0

Ty widziałeś na oczy jakiś podręcznik Javy?

for (int i=0; i<main.length; i++) mb.add(main[i]);  // w tej linijce podkreśla mi wszystkie i
0

for (int i = ....) powoduje ze zmienna i istnieje tylko dla danej petli

for (int i=0; i<3; i++)
            for (int k=0; k<3; k++)
                main[i].add(new JMenuItem("Element" + (i+1) + "-"+ (k+1))); //tutaj i jest osiagalne
//tutaj juz zmiennej i nie ma
//dalsze instrukcje

wiec albo deklarujesz zmienna wczesniej:

int i;
for (i = ....)

albo lepiej - w drugiej petli poprawiasz, zeby ponownie zadeklarowal zmienna i

for (i = ...) zamienic na: for (int i = ...)

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