Mam klase menu w ktorej jest guzik menu2
if (e.getSource()==menu2)
{
///co tu nalezy wstawic zeby wywolac inna klase tworzaca menu 2?
/// klasa jest juz stworzona w tym samym folderze o nazwie submenu
}
Mam klase menu w ktorej jest guzik menu2
if (e.getSource()==menu2)
{
///co tu nalezy wstawic zeby wywolac inna klase tworzaca menu 2?
/// klasa jest juz stworzona w tym samym folderze o nazwie submenu
}
Ale że co? Chcesz kompilować ze źródeł w locie? Bo niezbyt rozumiem. Jeśli chcesz stworzyć instancję klasy (która już jest skompilowana) to robisz new Klasa(parametry).
tak oba są skompilowane i co teraz wstawiam ta instancje ale nie wykonuje instrukcji zawartych w klasie submenu
po prostu nic się nie dzieje.
if (e.getSource()==menu2)
{
new submenu();
}
A co miałoby się dziać ? Utworzyłeś obiekt i tyle. Nic więcej samo się nie stanie ;p
new submenu() powoduje alokację pamięci na obiekt i wywołanie konstruktora, który wypełnia ten kawałek pamięci odpowiednimi wartościami + jakieś ewentualne efekty uboczne. Zapewne zapomniałeś podpiąć tego podmenu do właściwego nadmenu, zobacz tutaj na przykłady: http://download.oracle.com/javase/tutorial/uiswing/components/menu.html
chodzi o to ze powiedzmy w pierwszej klasie rysowany jest powiedzmy obrazek i jest guziki i po jego naciśnięciu zmienia na to co jest w drugiej klasie czyli np jakiś nowy rysunek i nowe guziki.
no ok takto jak ta klasa jest zadeklarowana to co ja uruchamia??
Polecenie
new submenu();
uruchamia konstruktor bezargumentowy klasy submenu(). Dopóki nie zobaczymy kodu tego konstruktora, nie dostaniesz wyczerpującej odpowiedzi.
no ok pierwszy apllet wyswietla napis "wartosc a" a drugi "aaaaaa" i po nacisnieciu prawej stralki nie dopisuje oto kody sam kombinuje juz od paru dni i ani rusz!
klasa menu
import java.awt.*;//biblioteki javy
import javax.swing.*;
import java.awt.image.*;
import java.util.Random;
import java.applet.*;
import java.awt.event.*;
public class menu extends JApplet implements java.awt.event.ActionListener, KeyListener, Runnable
{
Thread watek;//deklaracja watku
public void init()
{
addKeyListener(this);
setLayout(null);//ustawienie sciezki wejsciowej na zerowa
resize(530,530);//
watek=new Thread(this);//dodanie watku do appletu
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
new menu2();
}
repaint();
}
public void keyTyped(KeyEvent e){
}
public void keyReleased(KeyEvent e) {
}
public void run()
{
repaint();
new menu2();
}
public void start()
{
}
public void stop()
{
}
public void paint(Graphics g)
{
g.drawString("Wartość a: ", 250, 360);
}
public void destroy()
{
}
public void actionPerformed(java.awt.event.ActionEvent e)
{
}
}
klasa menu2
import java.awt.*;//biblioteki javy
import javax.swing.*;
import java.awt.image.*;
import java.util.Random;
import java.applet.*;
import java.awt.event.*;
public class menu2 extends JApplet implements java.awt.event.ActionListener, KeyListener, Runnable
{
Thread watek;//deklaracja watku
public void init()
{
addKeyListener(this);
setLayout(null);//ustawienie sciezki wejsciowej na zerowa
resize(530,530);//
watek=new Thread(this);//dodanie watku do appletu
watek.start();
}
public void keyPressed(KeyEvent e) {
}
public void keyTyped(KeyEvent e){
}
public void keyReleased(KeyEvent e) {
}
public void run()
{
repaint();
}
public void start()
{
}
public void stop()
{
}
public void paint(Graphics g)
{
g.drawString("aaaaaaaaaa ", 300, 360);
}
public void destroy()
{
}
public void actionPerformed(java.awt.event.ActionEvent e)
{
}
}
Ty na pewno wiesz co robisz? Pierwszy raz widzę jawne wywołanie konstruktora apletu. Aplet jest wykonywany przez przeglądarkę, ona przydziela mu miejsce na stronie i wywołuje we właściwej kolejności metody apletu.
korzystam z blue jay i tam kompiluje program, znajomego się pytałem to mówił ze tak wywołuje ale mi coś nie chce to niby co mam napisać żeby wywołać ta druga klasę??