Milena Gnyś

Milena Gnyś początkująca w javie

Temat: static method

Mam problem,otóż chciałam sobie wybrany jFrame stworzyć jako enabled(false) więc napisałam:
jFrame1.setEnabled(false);

Niestety wyskakuje błąd:non- static method setEnabled (boolean)camnot be referenced from a staticcontext"
Domyślam się że trzeba napisać static method, tak jak przy zmiennych, ale nie wiem jak.Proszę o pomocMilena Gnyś edytował(a) ten post dnia 28.12.10 o godzinie 00:01

konto usunięte

Temat: static method

Prawdopodobnie (zgaduję) próbujesz wywołać metodę niestatyczną z wnętrza statycznej metody main. Musisz stworzyć instancję swojej klasy i wywołać taką metodę na niej.

Na przykład tak:


package jakispackage;

import javax.swing.JFrame;

class JExample {

public static void main(String[] args) {

JExample f = new JExample();

f.createFrame();

}

private void createFrame(){

JFrame jframe = new JFrame();

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jframe.setEnabled(false);

jframe.setSize(100,100);
jframe.setVisible(true);

}

}

Krzysztof S. edytował(a) ten post dnia 28.12.10 o godzinie 00:57

Temat: static method

Mam podobny problem, chodzi o dispose
Chciałbym żeby po kliknięciu zamknęło się wybrane okno, czyli:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFrame1.dispose();
}

Niestety wyskakuje taki sam błąd, jak u Mileny,
Co muszę zmienić??
PROSZĘ O POMOCSebastian Jaworski edytował(a) ten post dnia 31.12.10 o godzinie 00:19

konto usunięte

Temat: static method

Sebastian Jaworski:
Mam podobny problem, chodzi o dispose
Chciałbym żeby po kliknięciu zamknęło się wybrane okno, czyli:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFrame1.dispose();
}

Niestety wyskakuje taki sam błąd, jak u Mileny,
Co muszę zmienić??
PROSZĘ O POMOC


W zależności co chcesz zrobić to możesz zrobić coś takiego:

jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFrame1.setVisible(false);}


Lub jak chcesz całkowicie zamknąć okienko i wyjść z programiku to:

jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);}
Krzysztof Telka edytował(a) ten post dnia 31.12.10 o godzinie 00:54

Temat: static method

Tylko że jest problem, wszystko jest ok,gdy:
this.setVisible(false);

Niestety, gdy chcę zamknąć wybrane okno, nic się nie dzieje:


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JDialog okno = new jDialog1(null);
okno.setVisible(false);
}

Nie mam żadnego błędu, tylko jDialog1 nie staje się niewidoczny:(
Co muszę poprawić,by zadziałało???Sebastian Jaworski edytował(a) ten post dnia 31.12.10 o godzinie 12:40

konto usunięte

Temat: static method

JDialog okno = new jDialog1(null);

Jak chcesz coś zamykać co jest puste, lub nie istnieje?
Weź książkę do Javy najlepiej Core Java z Helionu czy wypożycz i przeczytaj 1-2 rozdziały tam znajdziesz odpowiedzi na te pytania.

Masz tutaj coś podobnego, sam sobie odpowiedz czego Ci brakuje

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Main
{

public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{

public void run()
{
DialogFrame frame = new DialogFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class DialogFrame extends JFrame
{
public DialogFrame()
{
setTitle("DialogTest");
setSize(wysokosc,szerokosc);
//Tworzenie menu Plik

JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu fileMenu = new JMenu("Plik");
menuBar.add(fileMenu);
//Tworzenie elementów o programie i zamknij

JMenuItem aboutItem = new JMenuItem("O programie");
aboutItem.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)
{
if (dialog == null) //uruchomiony 1 raz
dialog = new AboutDialog(DialogFrame.this);
dialog.setVisible(true);
}
});
fileMenu.add(aboutItem);


JMenuItem exitItem = new JMenuItem("Zamknij");
exitItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
fileMenu.add(exitItem);
}
private AboutDialog dialog;
public static final int wysokosc=400;
public static final int szerokosc= 300;
}

class AboutDialog extends JDialog
{
public AboutDialog(JFrame owner)
{
super(owner, "Tekst okna o programie",true);
//dodawanie etykiety HTML

add(new JLabel("<html><h1><i>Core Java</i></h1><hr> By Cay Horstmann and Gary Cornel</html>"),BorderLayout.CENTER);

//przycisk OK zamyka okna dialogowe

JButton ok = new JButton("OK");
ok.addActionListener(new ActionListener()
{

public void actionPerformed(ActionEvent e)
{
setVisible(false);
}
});

JPanel panel = new JPanel();
panel.add(ok);
add(panel,BorderLayout.SOUTH);
setSize(250,250);

}
}
Krzysztof Telka edytował(a) ten post dnia 31.12.10 o godzinie 17:00

Temat: static method

W jaki sposób przyciskiem "ok" (w "o programie") zamknąć główne okno czyli "Dialog tekst" ???Sebastian Jaworski edytował(a) ten post dnia 31.12.10 o godzinie 21:57

konto usunięte

Temat: static method

Sebastian Jaworski:
W jaki sposób przyciskiem "ok" (w "o programie") zamknąć główne okno czyli "Dialog tekst" ???


To jest ostatnia rzecz jaką wyjaśniam dla Ciebie po resztę do książki i nie wiem Eclipse/NetBeans i pisać samemu - wyjaśniłem CI powyżej ale chyba pogrubię jak działa kod html

JButton ok = new JButton("OK");
ok.addActionListener(new ActionListener()
{

public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});


System.exit(0) - to polecenie ZAMYKA wszystkie okna, nawet jak jest uruchamiane jako okienka "podrzędne" - resztę sobie wyczytasz ;)Krzysztof Telka edytował(a) ten post dnia 03.01.11 o godzinie 00:57

Temat: static method

Żeby było to takie łatwo... O tym już wiedziałem, chodzi mi by zamknąć główne okno "Dialog teks" ale okno "o programie" pozostało, czyli nie zamykać całej aplikacji, tylko okno "Dialog tekst"

Następna dyskusja:

method-get data from database




Wyślij zaproszenie do