static

Status
Nicht offen für weitere Antworten.

dudu3k

Aktives Mitglied
moinmoin,
hab mal eine frage zu static. beim entwickeln kam immer wieder die fehlermeldung non-static method not allowed in this static context. also ich wüsste gerne wie ich mit diesem fehler umgehe und was die genaue bedeutung von static und non-static ist. dass eine static methode oder variable nur einmal existiert ist mir schon klar.
zur anwendung mein aktueller fehler: Locale.getLanguage() geht nicht mit obiger fehlermeldung. vieleicht kann mir auch jemand sagen wie ich den aufruf einbauen muss?
danke im vorraus!
 

The_S

Top Contributor
Schau in die FAQ, da steht alles, was du über static wissen musst.

getLanguage ist keine statische Methode. Du musst also zuerst ein neues Objekt von Locale erzeugen, dann kannst du auf die Methode zugreifen.
 

Quaxli

Top Contributor
Die FaQ ist keineswegs umständlich geschrieben, ich finde Beni hat da gute Arbeit geleistet. Entweder beschäftigst Du Dich nochmal mit dem Thema Objektorientierung genauer, z. B. in www.javabuch.de oder Du machst Dir wenigstens mal die Mühe, die Beispielprogramme von Beni zu kopieren und auszutesten.
Die FAQ enthalten eine gut gemachte Erklärung und ausführbare Beispiele, die das gut darstellen. Was denn noch? Soll jemand bei Dir vorbei kommen. :bahnhof:
 

dudu3k

Aktives Mitglied
mir waren das zu viele beispiele auf einmal!
das oop auf der url habe ich in reihenfolge gelesen, also ganz am anfang, und hab nicht viel nutzen daraus ziehen können. aber danke für den tip, ich werd noch mal reinschauen. hab ja schon den hamster und ein anderes buch darüber gelesen. nur hamster war auch so ein overkill an beisielen und das andere hatte nicht so viel zu bieten!
gn8
 

The_S

Top Contributor
also ich wollte eigentlich immer so viele beispiele wie irgend möglich ???:L

das oop auf der url habe ich in reihenfolge gelesen, also ganz am anfang, und hab nicht viel nutzen daraus ziehen können.

:bahnhof: ??? Du weißt, was OOP ist!? Objekt-Orientierte-Programmierung und kein Buch :p
 
G

Gast

Gast
lol da hat wohl jemand keine ahnung und auch keine lust das zu ändern...
 

dudu3k

Aktives Mitglied
lol ich meinte die ersten vier kapitel über oop!
mir fällt da grad eine neue signatur ein...
 

The_S

Top Contributor
und nochmal auf deutch bitte :p .

Bzw. wo liegt jetzt dein genaues Problem? Was konkret verstehst du an static nicht? OOP verstehst du aber? Du weißt was Objekte, Klassen, packages, modifier, primitive Datentypen, deklarieren, initialisieren, ... ist/sind?
 

dudu3k

Aktives Mitglied
also das weiss ich alles, mir fehlt nur noch praxis!
ich habe sogar ein aktuelles beispiel, wo ich nicht weiss wie ich den fehler behebe, und variablen einfach static sein müssen!?
dieses programm bricht mit einer fehlermeldung ab, aber es geht ja nur um den code, in dem an einer stelle sehr viele static variablen sind! meine frage wäre in diesem fall, ob die static sein müssen oder ob das auch anders geht? womit ich eine frage bestimmtfalsch falsch gestellt hätte!?
http://forum.java.sun.com/thread.jspa?threadID=5275535
 

The_S

Top Contributor
Generell kann man (gerade am Anfang) fast alles ohne static lösen. Also einfach mal alles static (außer von der main-Methode versteht sich ;) ) rausschmeisen.
 

dudu3k

Aktives Mitglied
ich hab grade festgestellt, dass der fehler in meinem scce sogar wirklich mit static zu tun hat, und zwar in der ShockCfg.java!
dort sind viele variablen, die zum teil nur einmal vorkommen im program. die dürfen doch static sein?
und ich erhalte bei einem string-array wie ich dort grade gepostet hab, einen sehr ominösen fehler, aus dem ich nicht schlau werde!
 

The_S

Top Contributor
Klasse ... kannst du mir bitte mal verraten, wie wir wissen sollen was du falsch gemacht hast, wenn wir keinen Code + genaue Fehlermeldung sehen?
 

dudu3k

Aktives Mitglied
ich hab den link 2 oder 3 posts voher angegeben! dort ist das progrmm der lange code auf der ersten seite.
 

The_S

Top Contributor
ja, du hast einen link hingeklatscht. Ohne Erklärung oder sonstige Hinweise, einfach nur, dass ein Link da ist.

Und du erwartest jetzt allen ernstes, dass sich jemand den haufen Code durchschaut? Kannst du den nicht aufs nötigste begrenzen?

Du hast viel zu viel static drin, was du nicht brauchst (das sieht man auf den 1. Blick). Außerdem ist auch viel zu viel public. Deine main-Methode ist auch viel zu überladen. Du scheinst sowieso modifier nach belieben zu verwenden. Die Code Conventions scheinen dich auch nicht zu interessieren.

Weißt du, was ich an deiner Stelle machen würde? Alles löschen, mir anhand von kleinen Beispielen zumindest mal die Grundgedanken von OOP aneigenen, und das ganze dann nochmal langsam, durchdacht und mit nem ordentlichen Klassendesign aufziehen. Mit dem Teil machst du ja jetzt schon ewig rum ...

Oder lass es alternativ ganz sein, könntest es evtl. auch mal mit einer nicht oop versuchen.

Das klingt jetzt zwar alles hart, ist aber so. Sorry
 

Leroy42

Top Contributor
dudu3k hat gesagt.:
und ich erhalte bei einem string-array [...] einen sehr ominösen fehler, aus dem ich nicht schlau werde!

:shock: Habe schon immer vermutet, daß die Java-Entwickler
nur einen neuen Geheimbund gründen wollten! :meld:

Hobbit_Im_Blutrausch hat gesagt.:
Oder lass es alternativ ganz sein, könntest es evtl. auch mal mit einer nicht oop versuchen.

Genau! Schon mal d'rüber nachgedacht, es als Comedian zu versuchen?

Ich denke mal, daß deine Talente in diesem Metier eher liegen! :cool:
 

dudu3k

Aktives Mitglied
das verstehst du falsch! ich habe dort grade gepostet, dass ich nicht wusste, dass man ein scce nicht in eine datei packen muss! ich fang wirklich mit dem scce noch mal von vorne an!
 

quippy

Bekanntes Mitglied
dudu3k hat gesagt.:
ich fang wirklich mit dem scce noch mal von vorne an!

Was zum Henker ist "scce"?! Sourcecode? Southern Cross Cultural Exchange? Service Center of Continous Engineering?

In dem Thread hast Du übrigens auch geschrieben, Du hättest Sourcecode per Cut&Paste in die Main-Methode verschoben und dann alle Vars static machen müssen.

Das ist
a) logisch, da "main" auch static ist und damit keine Instanz der Klasse kennt
b) ein Designproblem! Bitte lies Dir den Unterschied zwischen Instanz-Variablen und Klassen-Variablen mal an. Auch Sichtbarkeitsregeln könnten helfen

Desweiteren ist dein Projekt schon viel zu groß um als Lehrprojekt zu dienen - und du mußt noch viel lernen!

Sich eine Programmiersprache per Trial&Error autodidaktisch beizubringen ist lobenswert und auch richtig - aber wird dann zum Problem, wenn man in den Anfängen schludert. Das Du offensichtlich nicht weißt, daß in Java nur einer Klasse pro *.java-File (und damit pro *.class-File) existieren darf (außer Inner Klasses) zeigt, daß Du Dich allein mit den Grundzügen von Java nicht auskennst.

Daher empfehle ich Dir, Dir diese Grundlagen erst einmal beizubiegen. Java ist nicht PHP (sorry, wenn mir die PHP-Fraktion jetzt auf's Dach steigen will ;) ) Da sollte man vorher wissen, was man will.

Alternativ kannst Du einfach mal Querlesen, was dir z.B. UML (insbesondere Klassendiagramme) bieten können. Vielleicht malst Du dann erst mal.

Alternativ: schau Dir OpenSource-Code an. Egal was! Da kann man sich eine Menge abschauen, wie man z.B. vernünftig und mit gettern und settern eine GUI konstruiert - und die Logik per Delegation schön auslagert.

Und noch ein Merksatz: wenn eine Funktion mehr als 25 Zeilen Coding enthält, stimmt was nicht.
 

dudu3k

Aktives Mitglied
quippy hat gesagt.:
Was zum Henker ist "scce"?! Sourcecode? Southern Cross Cultural Exchange? Service Center of Continous Engineering?

so ein kleines program wie es verwendet wird, wenn man um hilfe bittet!
quippy hat gesagt.:
In dem Thread hast Du übrigens auch geschrieben, Du hättest Sourcecode per Cut&Paste in die Main-Methode verschoben und dann alle Vars static machen müssen.

da dacht ich noch, das müsste man bei sollch einem scce!


hier die fehlermeldungen:
Code:
./XerxesButton.java:52: non-static method setLoc(java.util.Locale) cannot be referenced from a static context
                                                SetRes.setLoc(en);
                                                      ^
./XerxesButton.java:58: non-static method setLoc(java.util.Locale) cannot be referenced from a static context
                                                SetRes.setLoc(d);
                                                      ^
./SetRes.java:21: cannot find symbol
symbol  : variable title11
location: class XerxesMain
                XerxesMain.title11.setTitle(ShockCfg.txt.getString("MainPaneLang"));
                          ^
./SetRes.java:22: non-static variable langLabel cannot be referenced from a static context
                XerxesMain.langLabel.setText(ShockCfg.txt.getString("MainLabelLang"));
                          ^
./SetRes.java:23: cannot find symbol
symbol  : variable idx
location: class SetRes
                idx = XerxesMain.langlist.getSelectedIndex();
                ^
./SetRes.java:27: cannot find symbol
symbol  : variable idx
location: class SetRes
                if(idx==0)
                   ^
./SetRes.java:29: cannot find symbol
symbol  : variable idx
location: class SetRes
                if(idx==1)
                   ^
./SetRes.java:37: cannot find symbol
symbol  : variable title5
location: class XerxesMain
                XerxesMain.title5.setTitle(ShockCfg.txt.getString("MainPaneShots"));
                          ^
./SetRes.java:38: non-static variable picLabel cannot be referenced from a static context
                XerxesMain.picLabel.setText(ShockCfg.txt.getString("MainLableShots"));
                          ^
./SetRes.java:39: non-static variable picButton cannot be referenced from a static context
                XerxesMain.picButton.setText(ShockCfg.txt.getString("MainButtonShots"));
                          ^
./SetRes.java:40: cannot find symbol
symbol  : variable title6
location: class XerxesMain
                XerxesMain.title6.setTitle(ShockCfg.txt.getString("MainPanRes"));
                          ^
11 errors

und hier zwei der resourcen, die in den unterordner resources gehören in dateien MyTextRecource_de.properties MyTextResource_en.properties usw.

Code:
Maintab=Haupt
MainPaneJoy=Joystick
MainJoy=Joystick verwenden
MainPaneRog=Roger Wilco
MainRog=mit SS2 starten
MainPaneIntel=Intel Grafik Chips
MainIntel=Fehler beheben
MainPaneLang=Texte in System Shock 2
MainLabelLang=Language: 
MainDeuLang=Deutsch
MainEngLang=Englisch
MainPaneSave=Spielstaende
MainSave=benennbar
MainPaneMode=Soft-/Hardwaremode
MainMode=Hardwaremode aus
MainPaneBlut=Blut
MainBlut=einschalten
MainPaneShots=Screenshots
MainLableShots=Bildnr.: 
MainButtonShots=ansehen
ButtonLabelLang=Sprache von ShockCfg:
ButtonRadioGer=Deutsch
ButtonRadioEng=Englisch
RCCErrFehler=Fehler beim lesen der cam.cfg.
RICErrFehler=Fehler in der install.cfg! Falsche Sprache!
RICErrFehler3=Fehler beim lesen der install.cfg.
RSCErrFehler=Fehler beim lesen der shock.cfg.
RUCErrFehler=Waffenverschleiss zu klein oder zu gross!
RUCErrFehler2=user.cfg existiert nicht
RUCErrFehler6=lower spam min zu klein oder zu gross!
RUCErrFehler7=raise spam rand zu klein oder zu gross!
RickErrThr=Fehler Thread unterbrochen.
ShockPriHelp=Hilfe: java ShockCfg [help|xerxes|citadell|version]
WCCErrFehler=Fehler beim schreiben der cam.cfg.
WCCErrFehler2=Error
WICErrFehler=Fehler beim schreiben der Install.cfg.
WICErrFehler2=Dateifehler: install.cfg
WSCErrFehler=Fehler beim schreiben der Shock.cfg.
WSCErrFehler2=Dateifehler: Shock.cfg
WUCErrFehler=Error user.cfg
MainPanRes=Aufloesung
Main640480=640x480
Main800600=800x600
Main1024768=1024x768
Main12801024=1280x1024
Main16001200=1600x1200

Code:
Maintab=Main

MainPaneJoy=Joystick

MainJoy=use Joystick

MainPaneRog=Roger Wilco

MainRog=start with SS2

MainPaneIntel=Intel Graphic Chips

MainIntel=correct Errors

MainPaneLang=Texts in System Shock 2

MainLabelLang=Language: 

MainDeuLang=German

MainEngLang=English

MainPaneSave=Savegames

MainSave=namable

MainPaneMode=Software/hardware mode

MainMode=turn hardware off

MainPaneBlut=Blood

MainBlut=turn on

MainPaneShots=Screenshots

MainLableShots=Picture no.:

MainButtonShots=Show

ButtonLabelLang=Language of ShockCfg:

ButtonRadioGer=German

ButtonRadioEng=English

ButtonButtonSave=Save

ButtonButtonAbb=Abort

RCCErrFehler=Error reading cam.cfg.

RICErrFehler=Error in install.cfg! Wrong language!

RICErrFehler3=Error reading install.cfg.

RSCErrFehler=Error reading shock.cfg.

RUCErrFehler=weapon wearout too low or too high!

RUCErrFehler2=user.cfg does not exist

RUCErrFehler6=lower spam min too low or too high!

RUCErrFehler7=raise spam rand too low or too high!

RickErrThr=Error: thread interrupted. // interrupted oder aborted oder canceled? (bin mir nicht sicher was genau das beschrreibt)

ShockPriHelp=Help use: java ShockCfg [help|xerxes|citadell|rickenbacker|version]

WCCErrFehler=Error writing cam.cfg.

WCCErrFehler2=Error

WICErrFehler=Error writing Install.cfg.

WICErrFehler2=File error: install.cfg

WSCErrFehler=Error writing Shock.cfg.

WSCErrFehler2=File error: Shock.cfg

WUCErrFehler=Error user.cfg

MainPanRes=Resolution

Main640480=640x480

Main800600=800x600

Main1024768=1024x768

Main12801024=1280x1024

Main16001200=1600x1200

und nun die java dateien

Code:
import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.LookAndFeel.*;

import java.util.*;



public class ShockCfg

{ 

	static ResourceBundle txt;



	public ShockCfg()

	{

		Locale sprache = Locale.getDefault();

		try 

    		{

			System.out.println(sprache.getLanguage());

			txt = ResourceBundle.getBundle("resources.MyTextResource", sprache);

		}

		catch ( MissingResourceException e )

		{

			System.err.println( e );

		}

	}

	

	

	

	public static void main(final String args[])

	{

		ShockCfg shock = new ShockCfg();

		Xerxes x = new Xerxes();

	}	

}
Code:
import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.border.*;

import javax.swing.plaf.*;



public class Xerxes

{

	public JFrame vonbraun;

	public JPanel vonbraunPanel;

	public static JTabbedPane planets;

	

	public Xerxes()

	{

		JFrame vonbraun = new JFrame();

		vonbraun.setLayout( new FlowLayout());

		vonbraunPanel = new JPanel();

		vonbraun.add(vonbraunPanel);

		vonbraunPanel.setOpaque(true);

		

		planets = new JTabbedPane(JTabbedPane.BOTTOM);

                planets.addTab(ShockCfg.txt.getString("Maintab"), new XerxesMain());

		    vonbraunPanel.add(planets);		

		XerxesButton bb = new XerxesButton(vonbraun);

		vonbraun.setSize(640,480);	//wo Groesse einstellen?

		vonbraun.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);	//EXIT_ON_CLOSE?

		vonbraun.setVisible(true);	//Fenster undursichtig

	}

}
Code:
import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.*;

import javax.swing.border.*;

import javax.swing.BorderFactory;

import javax.swing.plaf.basic.*;



public class XerxesButton extends JPanel

{

	public JFrame vonbraun;

	public JPanel nix;

	public JButton speicherButton, abbruchButton;

	public JRadioButton engBox, deuBox;

	public ButtonGroup langBoxes;

	public GridBagLayout gb;

	public GridBagConstraints gbc;

	public JLabel langtext;

	String[] langs = {ShockCfg.txt.getString("MainDeuLang"), ShockCfg.txt.getString("MainEngLang")};

	public JComboBox langlist = new JComboBox(langs);

	public JLabel langLabel;

	

	

	

	XerxesButton(JFrame vonbraun)

	{

		nix = new JPanel();

		nix.setLayout(gb = new GridBagLayout());

		gbc = new GridBagConstraints();

		langtext = new JLabel(ShockCfg.txt.getString("ButtonLabelLang"));

		gbc.gridx = 0;

		gbc.gridy = 0;

		gbc.gridwidth = 1;

		gbc.gridheight = 1;

		nix.add(langtext, gbc);

		langLabel = new JLabel(ShockCfg.txt.getString("MainLabelLang"));

		langLabel.setEnabled(false);

		langlist.setOpaque(true);

		gbc.gridx = 1;

		gbc.gridy = 0;

		nix.add(langlist);

		langlist.addItemListener(new ItemListener(){

			public void itemStateChanged(ItemEvent e) {

				if(e.getStateChange()==ItemEvent.SELECTED)

				{

					JComboBox cbe = (JComboBox)e.getItemSelectable();

					String str81 = (String)cbe.getSelectedItem();

					if(str81.contains("Englisch"))

					{

						System.out.println("en");

						Locale en = new Locale("EN");

						SetRes.setLoc(en);

					}

					if(str81.contains("German"))

					{

						System.out.println("de");

						Locale d = new Locale("DE");

						SetRes.setLoc(d);

					}

				}}});

		vonbraun.getContentPane().add(nix);

	 }

}
Code:
import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.border.*;

import javax.swing.BorderFactory;

import javax.swing.plaf.basic.*;



public class XerxesMain extends JPanel

{

	public static JPanel mainPanel, joystickPanel, rogerPanel, intelPanel, langPanel, staendePanel, swmodePanel, blutPanel, picPanel, resPanel;

	public static JCheckBox joystickCheckbox, rogerCheckbox, intelCheckbox, staendeCheckbox, swmodeCheckbox, blutCheckbox;

	static String[] langs = {ShockCfg.txt.getString("MainDeuLang"), ShockCfg.txt.getString("MainEngLang")};

	public static JComboBox langlist = new JComboBox(langs);

	static String[] res = {ShockCfg.txt.getString("Main640480"), ShockCfg.txt.getString("Main800600"), ShockCfg.txt.getString("Main1024768"), ShockCfg.txt.getString("Main12801024"), ShockCfg.txt.getString("Main16001200")};

	public static JComboBox reslist = new JComboBox(res);

	public JLabel langLabel;

	String[] pics = {"666", "999"};

	public JComboBox piclist = new JComboBox(pics);

	public JLabel picLabel;

	public JButton picButton;

	

	XerxesMain()

	{

		this.setVisible(true);

		this.setOpaque(true);

		mainPanel = new JPanel();

		mainPanel.setLayout(new GridBagLayout());

		GridBagConstraints c = new GridBagConstraints();

		joystickPanel = xxo.pane(ShockCfg.txt.getString("MainPaneJoy"));

		joystickCheckbox = xxo.jcb(ShockCfg.txt.getString("MainJoy"), 0, 5, 5, 5);

		joystickPanel.add(joystickCheckbox);

		c.gridx=0;

		c.gridy=0;

	    	mainPanel.add(joystickPanel, c);



		rogerPanel = xxo.pane(ShockCfg.txt.getString("MainPaneRog"));

		rogerCheckbox = xxo.jcb(ShockCfg.txt.getString("MainRog"), 0, 5, 5, 5);

		rogerPanel.add(rogerCheckbox);

		c.gridx=1;

		c.gridy=0;

		mainPanel.add(rogerPanel, c);

		

		intelPanel = xxo.pane(ShockCfg.txt.getString("MainPaneIntel"));

		intelCheckbox = xxo.jcb(ShockCfg.txt.getString("MainIntel"), 0, 10, 10, 10);

		intelPanel.add(intelCheckbox);

		c.gridx=0;

		c.gridy=1;

		mainPanel.add(intelPanel, c);



		langPanel = new JPanel();

	    langPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10));

	    TitledBorder title11;

		title11 = BorderFactory.createTitledBorder(

		BorderFactory.createEtchedBorder(EtchedBorder.LOWERED, Color.green, Color.green),

		ShockCfg.txt.getString("MainPaneLang"), 

		TitledBorder.LEADING, 

		TitledBorder.TOP, 

		new Font("Serif", Font.PLAIN, 14), 

	    	Color.green);

		langPanel.setEnabled(true);

	    	langLabel = new JLabel(ShockCfg.txt.getString("MainLabelLang"));

		langlist.setEditable(true);

		langlist.setOpaque(true);

		langlist.setEnabled(true);

	    	c.gridx=2;

		c.gridy=0;

		c.gridwidth=2;

		mainPanel.add(langPanel, c);

	    	langPanel.setBorder(title11);

		langPanel.add(langLabel);

	    	langPanel.add(langlist);

	    	staendePanel = xxo.pane(ShockCfg.txt.getString("MainPaneSave"));

		staendeCheckbox = xxo.jcb(ShockCfg.txt.getString("MainSave"), 0, 10, 10, 10);

		staendePanel.add(staendeCheckbox);

		c.gridx=1;

		c.gridy=1;

	    	mainPanel.add(staendePanel, c);



		swmodePanel = xxo.pane(ShockCfg.txt.getString("MainPaneMode"));

		swmodeCheckbox = xxo.jcb(ShockCfg.txt.getString("MainMode"), 0, 10, 10, 10);

		swmodePanel.add(swmodeCheckbox);

		c.gridx=2;

		c.gridy=1;

		c.gridwidth=2;

	    	mainPanel.add(swmodePanel, c);

		blutPanel = xxo.pane(ShockCfg.txt.getString("MainPaneBlut"));

		blutCheckbox = xxo.jcb(ShockCfg.txt.getString("MainBlut"), 0, 10, 10, 10);

		blutPanel.add(blutCheckbox);

		c.gridx=0;

		c.gridy=2;

	    	mainPanel.add(blutPanel, c);

	    

	    	picPanel = new JPanel();

	    	picPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10));

	   	TitledBorder title5;

		title5 = BorderFactory.createTitledBorder(

		BorderFactory.createEtchedBorder(EtchedBorder.LOWERED, Color.green, Color.green),

		ShockCfg.txt.getString("MainPaneShots"), 

		TitledBorder.LEADING, 

		TitledBorder.TOP, 

		new Font("Serif", Font.PLAIN, 14), 

	    	Color.green);

		picPanel.setEnabled(false);

	    JLabel picLabel = new JLabel(ShockCfg.txt.getString("MainLableShots"));

		piclist.setEditable(true);

	piclist.setOpaque(true);

	picButton = new JButton(ShockCfg.txt.getString("MainButtonShots"));

	    c.gridx=2;

		c.gridy=2;

		c.gridwidth=3;

	    mainPanel.add(picPanel, c);

	    picPanel.setBorder(title5);

	    picPanel.add(picLabel);

	    picPanel.add(piclist);

	    picPanel.add(picButton);



		resPanel = new JPanel();

		resPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10));

	    		TitledBorder title6;

			title6 = BorderFactory.createTitledBorder(

			BorderFactory.createEtchedBorder(EtchedBorder.LOWERED, Color.green, Color.green),

			ShockCfg.txt.getString("MainPanRes"), 

			TitledBorder.LEADING, 

			TitledBorder.TOP, 

			new Font("Serif", Font.PLAIN, 14), 

	    		Color.green);



		reslist.setOpaque(true);



		c.gridx=0;

		c.gridy=3;

	    mainPanel.add(resPanel, c);

	    resPanel.setBorder(title6);



	    resPanel.add(reslist);



		

	this.setOpaque(true);

	this.add(mainPanel);

	}

}
Code:
import java.awt.*;

import javax.swing.*;

import javax.swing.border.*;

import javax.swing.plaf.metal.*;

import javax.swing.plaf.metal.*;



public class xxo

{

	

	public static JPanel pane(String xtitle)

	{

		JPanel pane = new JPanel();

	 	TitledBorder title;

		title = BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED, Color.green, Color.green),

		xtitle, 

		TitledBorder.LEADING, 

		TitledBorder.TOP, 

		new Font("Serif", Font.PLAIN, 14), 

		Color.green);

		pane.setBorder(title);

		pane.setBackground(Color.black);

	    	pane.setForeground(Color.green);

		pane.setOpaque(true);

		return pane;

	}

	

	public static JCheckBox jcb(String xtitle, int r, int s, int t, int u)

	{

	//UIManager.put("JCheckBox.selected", Color.green);

	//UIManager.put("JCheckBox.interiorForeground", Color.green);

	//this.setVisible(true);

	JCheckBox a1 = new JCheckBox(xtitle, new CheckBoxIcon());

		a1.setSelected(true);

		a1.setBorder(BorderFactory.createEmptyBorder(r, s, t, u));

		a1.setBackground(Color.black);

	    	a1.setForeground(Color.green);

		a1.setOpaque(true);

		return a1;

	}



	public static JLabel fnummberkey(String fkey)

	{

		JLabel f1;

		f1 = new JLabel(fkey);

		f1.setBackground(Color.black);

		f1.setForeground(Color.green);

		return f1;

	}

	

	public static JComboBox fcheat()

	{

		String[] cheats = {" ", "666", "999"};

		JComboBox f1list = new JComboBox(cheats);

		f1list.setEditable(true);

		ComboBoxRenderer renderer = new ComboBoxRenderer();

		//renderer.setPreferredSize(new Dimension(200, 130));

		f1list.setRenderer(renderer);

		// now a bug

		f1list.setPreferredSize(new Dimension(229, 20));

		//piclist.setAlignmentX(Component.LEFT_ALIGNMENT);

		//piclist.addActionListener(this);

		f1list.setBackground(Color.black);

		f1list.setForeground(Color.green);

		return f1list;

	}



	public static JButton fButton(String bt)

	{

		JButton F1Button = new JButton(bt);

		F1Button.setBackground(Color.black);

		F1Button.setForeground(Color.green);

		//http://java.sun.com/docs/books/tutorial/uiswing/components/border.html thx to Yannix(forum.java.sun.com)

		F1Button.setBorder(BorderFactory.createCompoundBorder(

			BorderFactory.createLineBorder(Color.green), 

			BorderFactory.createEmptyBorder(5,5,5,5)

		));

		return F1Button;

	}

	

	public static class ComboBoxRenderer extends JLabel implements ListCellRenderer 

	{

        	public ComboBoxRenderer() 

        	{

        		setOpaque(true);

        	}

        	

        	public Component getListCellRendererComponent(

                                           JList list,

                                           Object value,

                                           int index,

                                           boolean isSelected,

                                           boolean cellHasFocus) 

		{

			list.setForeground(Color.green);

			list.setBackground(Color.black);

			return this;

		}

        }



	//now tick of checkbox

	private static class CheckBoxIcon implements Icon/*, Serializable*/

    {

        final static int csize = 13;

        public void paintIcon(Component c, Graphics g, int x, int y)

        {

            JCheckBox cb = (JCheckBox) c;

            ButtonModel model = cb.getModel();

 

            // outer bevel

            if( !cb.isBorderPaintedFlat() )

            {

                // Outer top/left

                g.setColor(Color.green);

                g.drawLine(x, y, x+11, y);

                g.drawLine(x, y+1, x, y+11);

 

                // Outer bottom/right

                g.setColor(Color.green);

                g.drawLine(x+12, y, x+12, y+12);

                g.drawLine(x, y+12, x+11, y+12);

 

                // Inner top.left

                g.setColor(Color.green);

                g.drawLine(x+1, y+1, x+10, y+1);

                g.drawLine(x+1, y+2, x+1, y+10);

 

                // Inner bottom/right

                g.setColor(Color.green);

                g.drawLine(x+1, y+11, x+11, y+11);

                g.drawLine(x+11, y+1, x+11, y+10);

 

                // inside box 

                if( (model.isPressed() && model.isArmed()) || !model.isEnabled() )

                {

                    g.setColor(Color.black);

                }

                else

                {

                    g.setColor(Color.black);

                }

                g.fillRect(x+2, y+2, csize-4, csize-4);

            }

            else

            {

                g.setColor(Color.green);

                g.drawRect(x+1, y+1, csize-3, csize-3);

 

                if( (model.isPressed() && model.isArmed()) || !model.isEnabled() )

                {

                    g.setColor(Color.green);

                }

                else

                {

                    g.setColor(Color.green);

                }

                g.fillRect(x+2, y+2, csize-4, csize-4);

            }

 

            if( model.isEnabled() )

            {

                g.setColor(Color.green);

            }

            else

            {

                g.setColor(Color.green);

            }

 

            // paint check

            if( model.isSelected() )

            {

                g.drawLine(x+9, y+3, x+9, y+3);

                g.drawLine(x+8, y+4, x+9, y+4);

                g.drawLine(x+7, y+5, x+9, y+5);

                g.drawLine(x+6, y+6, x+8, y+6);

                g.drawLine(x+3, y+7, x+7, y+7);

                g.drawLine(x+4, y+8, x+6, y+8);

                g.drawLine(x+5, y+9, x+5, y+9);

                g.drawLine(x+3, y+5, x+3, y+5);

                g.drawLine(x+3, y+6, x+4, y+6);

            }

        }

 

        public int getIconWidth()

        {

            return(csize);

        }

 

        public int getIconHeight()

        {

            return(csize);

        }

    }

}
Code:
import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.*;



class SetRes

{

	public void setLoc(Locale loca)

	{

		Locale sprache = loca;

		JComponent.setDefaultLocale(sprache);

		Locale.setDefault(sprache);

		ShockCfg.txt = ResourceBundle.getBundle("resources.MyTextResource", sprache);

                Xerxes.planets.setTitleAt(0, ShockCfg.txt.getString("Maintab"));

		XerxesMain.joystickPanel.setName(ShockCfg.txt.getString("MainPaneJoy"));

                XerxesMain.joystickCheckbox.setText(ShockCfg.txt.getString("MainJoy"));

		XerxesMain.rogerPanel.setName(ShockCfg.txt.getString("MainPaneRog"));

		XerxesMain.rogerCheckbox.setText(ShockCfg.txt.getString("MainRog"));

		XerxesMain.intelPanel.setName(ShockCfg.txt.getString("MainPaneIntel"));

		XerxesMain.intelCheckbox.setText(ShockCfg.txt.getString("MainIntel"));

		XerxesMain.title11.setTitle(ShockCfg.txt.getString("MainPaneLang"));

		XerxesMain.langLabel.setText(ShockCfg.txt.getString("MainLabelLang"));

		idx = XerxesMain.langlist.getSelectedIndex();

		XerxesMain.langlist.removeAllItems();

		XerxesMain.langlist.insertItemAt(ShockCfg.txt.getString("MainDeuLang"), 0);

		XerxesMain.langlist.insertItemAt(ShockCfg.txt.getString("MainEngLang"), 1);

		if(idx==0)

			XerxesMain.langlist.setSelectedItem(ShockCfg.txt.getString("MainDeuLang"));

		if(idx==1)

			XerxesMain.langlist.setSelectedItem(ShockCfg.txt.getString("MainEngLang"));

		XerxesMain.staendePanel.setName(ShockCfg.txt.getString("MainPaneSave"));

                XerxesMain.staendeCheckbox.setText(ShockCfg.txt.getString("MainSave"));

		XerxesMain.swmodePanel.setName(ShockCfg.txt.getString("MainPaneMode"));

		XerxesMain.swmodeCheckbox.setText(ShockCfg.txt.getString("MainMode"));

		XerxesMain.blutPanel.setName(ShockCfg.txt.getString("MainPaneBlut"));

		XerxesMain.blutCheckbox.setText(ShockCfg.txt.getString("MainBlut"));

		XerxesMain.title5.setTitle(ShockCfg.txt.getString("MainPaneShots"));

		XerxesMain.picLabel.setText(ShockCfg.txt.getString("MainLableShots"));

		XerxesMain.picButton.setText(ShockCfg.txt.getString("MainButtonShots"));

		XerxesMain.title6.setTitle(ShockCfg.txt.getString("MainPanRes"));

	}

}
 

dudu3k

Aktives Mitglied
Hobbit_Im_Blutrausch hat gesagt.:
Oder lass es alternativ ganz sein, könntest es evtl. auch mal mit einer nicht oop versuchen.

{quote}Genau! Schon mal d'rüber nachgedacht, es als Comedian zu versuchen?

Ich denke mal, daß deine Talente in diesem Metier eher liegen! :cool:[/quote]

hm struckturierte programmierung und komödiant, danke für die blumen, ich bleib lieber künstler... :cool:
 

quippy

Bekanntes Mitglied
dudu3k hat gesagt.:
quippy hat gesagt.:
Was zum Henker ist "scce"?! Sourcecode? Southern Cross Cultural Exchange? Service Center of Continous Engineering?

so ein kleines program wie es verwendet wird, wenn man um hilfe bittet!

Das erklärt noch immer nicht, was "scce" jetzt ist... Super Customer Care Engine?! Wikipedia kennt den Begriff nicht - Google nur als Abkürzung.

Wenn "scce" ein Programmtyp ist, wie z.B. ein MP3-Player, dann macht die Aussage "da dachte ich noch, bei einem scce müßte man das so machen" keinen Sinn - denn Programmierstile und Anwendungstypen haben nichts mit einander zu tun.


SCNR: Du beherrschst es, Deine 5 Jahre Informatikstudium erfolgreich zu verbergen.
 

dudu3k

Aktives Mitglied
ein kurzes program dass den fehler darstell.

kann niemand was zu den static-fehlermeldungen sagen?
 

Noar

Bekanntes Mitglied
Ich vermute mal, er meint mit scce das, was hier allgemein als "Kurzes, Selbständiges, Kompilierbares Beispiel". Allerdings hat er meiner Meinung nach den Sinn davon nicht so ganz verstanden, wenn ich mir die Menge Code anschaue, die er gepostet hat ...
 

ms

Top Contributor
Noar hat gesagt.:
Ich vermute mal, er meint mit scce das, was hier allgemein als "Kurzes, Selbständiges, Kompilierbares Beispiel". Allerdings hat er meiner Meinung nach den Sinn davon nicht so ganz verstanden, wenn ich mir die Menge Code anschaue, die er gepostet hat ...
Vielleicht ist das ja schon die stark gekürzte Fassung. :cool:

ms
 

dudu3k

Aktives Mitglied
Noar hat gesagt.:
Ich vermute mal, er meint mit scce das, was hier allgemein als "Kurzes, Selbständiges, Kompilierbares Beispiel". Allerdings hat er meiner Meinung nach den Sinn davon nicht so ganz verstanden, wenn ich mir die Menge Code anschaue, die er gepostet hat ...

ja, das mein ich! ich hab den sinn schon verstanden, nu das scce ist noch nicht fertig, es hängt an den static fehlermeldungen!
 

ms

Top Contributor
Code:
public class Test {

    int i = 7;

    public static void main(String[] args) {
        System.out.println(i);
    }

}
Hier dein scce mit dem Compilefehler:
Cannot make a static reference to the non-static field i Test.java line 8

ms
 

dudu3k

Aktives Mitglied
wenn du das mit meinem scce und dem programm vergleichen würdest, hättest du gesehen, dass das absolut nicht passt!
ich bin trotzdem für jed hilfe dankbar!
 

ms

Top Contributor
dudu3k hat gesagt.:
wenn du das mit meinem scce und dem programm vergleichen würdest, hättest du gesehen, dass das absolut nicht passt!
Nur weil ich keine 800 Zeilen Code gepostet habe?
Solange du dein Problem nicht auf einen 10-Zeiler reduzierst wirds schwierig.
Abgesehen davon glaube ich nicht, dass das von mir gepostete Beispiel so weit von deinem Problem entfernt ist.

ms
 

dudu3k

Aktives Mitglied
die fehlermeldung ist eine ganz andere und ausserdem sind es zwei! dazu tritt der fehler nich in der main funktion auf.
 

Noar

Bekanntes Mitglied
Also mal ganz ehrlich: Warum verwendest du als Java-Anfänger* denn einen Snapshot von einer kommenden Version?

Hat zwar mit deinem Fehler (vermutlich) nix zu tun (hab mich aber nicht wirklich durch dein ellenlanges Beispiel gequält), ist aber nicht wirklich hilfreich. Da das bisher kaum jemand verwendet, wird du da bei Problemen ziemlich im Regen stehen.

Verwende doch die etablierte Version 1.6.

* mein rein subjektives Empfinden
 

dudu3k

Aktives Mitglied
ja, stimmt! das thema hat ich im anderen thread auch schon! ich dachte für ein open source proram muss ich die version nehmen, da es sonst unter der sun lizens steht. aber jetzt ist es egal. mit der version hab ich aber gute erfahrungen gmacht, bis jetzt! mein program ist ja ganz einfach gehalten und läuft mit der version ohne probleme!
ob ich nach etlichen jahren grundstudium noch anfänger bin, weiss ich nicht, aber ich hab die fehler halt gepostet, weil ich aus der faq nicht so ganz schlau werd...

konkret sagt mir die erst fehlermeldung nichts! eine klasse die angeblich im statischen kontext läuft? da ist nirgends ein static!?
und die häufigen fehlermeldungen über variablen. klar kann ich alle static machen, aber das soll man ja laut dem forum hier nicht!? also was mach ich dann?
 

Janus

Bekanntes Mitglied
ich hab den code mal kurz überflogen und kann dazu nur eins sagen: grauenvoll. lauter statics und ne tonne code in die main gekloppt. dass das vor allem bei GUI anwendungen fehler ohne ende produziert, ist wenig überraschend.
 

dudu3k

Aktives Mitglied
code in der main? da musst du was anderes gelesen haben! auserdem brauch ich die statics zum teil, da manche variablen nur einmal vorkommen dürfen!
 

dudu3k

Aktives Mitglied
die frage ist doch eigentlich ganz einfach! muss in der classe SetRes alles static sein oder kann man das auch anders lösen?
 

dudu3k

Aktives Mitglied
hm scheint ja nicht viele experten für static hier zu geben!
also wenn mir jemand sagen kann wie ich das static in der XerxesMain weg bekomme, und ob das an der xxo liegt, wäre ich dankbar. mein program läuft zwar so aber es wird ja einen guten grund geben warum man static nicht verwendet!
ich hab hier noch mal eine englische, überarbeitete vesion des scce programs:
http://forum.java.sun.com/thread.jspa?threadID=5275535
das scce ist am ende des threads und danach kommt noch ein post, in dem vier dateien noch mal gekürzt wurden! der letzte post von mir bereinigt auch einen kleinen fehler in der xxo, das werde ich jetzt aber schnell verbessern, so das die letzten zwei code-posts zählen! glaub seite 2 und 3!
ich denke auch in der form ist das wirklich ein scce ;)
danke im vorraus!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Methoden abstract static Methode Allgemeine Java-Themen 8
N nicht static und auch nicht new Allgemeine Java-Themen 3
P static Blocks und variablen Allgemeine Java-Themen 41
Kirby.exe Cannot make a static reference to the non-static field rimWidth Allgemeine Java-Themen 12
Thallius Ist meine static Helper Class Thread save? Allgemeine Java-Themen 9
S static in Interface und Klasse Allgemeine Java-Themen 2
S static methode im Interface Allgemeine Java-Themen 1
A Variablen non-static variable cannot be referenced from a static content Allgemeine Java-Themen 4
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
K Static Variablen verbieten Allgemeine Java-Themen 10
C Generic collections und static typing Allgemeine Java-Themen 4
M Warum nicht static ? Allgemeine Java-Themen 10
M Eine static-Methode verlassen Allgemeine Java-Themen 2
B Schlüsselworte [ERLEDIGT] static { } - Was ist das und wofür kann ich das brauchen? Allgemeine Java-Themen 1
J private static final String variable Allgemeine Java-Themen 8
L Non-static-Variables in Enumerationen Allgemeine Java-Themen 2
L OOP Klassen-Design (static oder nicht?) Allgemeine Java-Themen 3
T Enumeration/Static Final/Bitfield Allgemeine Java-Themen 6
T Static kann nicht verändert werden Allgemeine Java-Themen 3
W Threads Cannot make a static reference.. Allgemeine Java-Themen 13
H Programierstil: static - Zugriff vs. Staticzugriff Allgemeine Java-Themen 24
N Static oder andere Lösung Allgemeine Java-Themen 5
N Vererbung Static & private fields - Nicht ganz einfach? Allgemeine Java-Themen 4
M Wo hin mit static factory methods? Allgemeine Java-Themen 40
M Public Static importRunning -> Bad Design oder ok ? Allgemeine Java-Themen 5
S Cannot make a static reference to the non-static field MySecondClass.Points Allgemeine Java-Themen 3
M Methoden Static Methoden und Thread??? Allgemeine Java-Themen 4
S auf public void Methode zugreifen ohne static Allgemeine Java-Themen 11
K Static - Problem Allgemeine Java-Themen 10
M Variablen Variablenzugriff aus static void Allgemeine Java-Themen 21
D API - Beispiel + static member in inner (non static) class Allgemeine Java-Themen 2
S static methoden Allgemeine Java-Themen 9
S Performance Frage: Objekt oder static? Allgemeine Java-Themen 33
X HTTP Problem mit static/non static JTextArea Update Allgemeine Java-Themen 17
A Annotation einer Subklasse im static-Block auslesen. Allgemeine Java-Themen 6
woezelmann referenz der outer class aus static nested class heraus Allgemeine Java-Themen 7
B static Variable / Unterklasse Allgemeine Java-Themen 2
I Was macht static { ... } ? Allgemeine Java-Themen 8
G static inner Klassen Allgemeine Java-Themen 7
G static und dynamic linking? Allgemeine Java-Themen 32
J in einer static Variable Wert ändern Allgemeine Java-Themen 6
J Verständnisfrage - nested static classes Allgemeine Java-Themen 11
G static- Methoden überschreiben Allgemeine Java-Themen 10
E Geschwindigkeit static Allgemeine Java-Themen 6
V Static oder wie? Allgemeine Java-Themen 61
I reflection get inner static classes Allgemeine Java-Themen 2
L static main - Spezifikation? Allgemeine Java-Themen 7
G URLClassLoader stößt static Block nicht an Allgemeine Java-Themen 8
P static-Methode aus dem Konstruktor aufrufen Allgemeine Java-Themen 6
oliver1974 "(.) should be accessed in a static way" Falsche W Allgemeine Java-Themen 6
P static Klassenvariable Allgemeine Java-Themen 15
B JPasswordField klassenübergreifend auslesen->static Probl Allgemeine Java-Themen 4
F Methoden: static vs. instance Allgemeine Java-Themen 24
MQue static Methoden/Klassen Allgemeine Java-Themen 7
K Warum static-Methoden nutzen Allgemeine Java-Themen 26
G Java-Befehle Native und Static Allgemeine Java-Themen 2
conan2 static-Block in Klassen Allgemeine Java-Themen 6
M JNI, static.a mit load.Library laden? Allgemeine Java-Themen 2
K Static Members von Superklasse für JEDEN Erben Allgemeine Java-Themen 6
padde479 The static method sleep(long) from the type Thread should. Allgemeine Java-Themen 2
M static-Methode vorschreiben Allgemeine Java-Themen 5
S singleton vs. static Allgemeine Java-Themen 7
G Object mit static Feldern speichern Allgemeine Java-Themen 9
J Warum heißt es eig. "public static void main" ? Allgemeine Java-Themen 4
conan2 "Cannot make a static reference to the non-static field Allgemeine Java-Themen 8
P Singleton vs static Allgemeine Java-Themen 19
J parameterized und static fields Allgemeine Java-Themen 4
A Static reference to non-static field Allgemeine Java-Themen 10
S static umgehen Allgemeine Java-Themen 5
G static oder nicht Allgemeine Java-Themen 4
J Problem mit static/non-static Allgemeine Java-Themen 2
G getAppletContext() in static Methode Allgemeine Java-Themen 3
m@nu Programm-Models in Static-Objekten speichern Allgemeine Java-Themen 5
J Nicht-static variable in static variable kopieren - wie? Allgemeine Java-Themen 14
O does not declare a static final serialVersionUID field of . Allgemeine Java-Themen 6
G static vor einem array Allgemeine Java-Themen 2
K Überschreiben von 'static'-Methoden hat anderes Verhalten? Allgemeine Java-Themen 2
A JSP & static-Variablen Allgemeine Java-Themen 3
B Static Import: Syntaxfrage Allgemeine Java-Themen 2
S Static + Speicher + Bytecode etc. Brauche HILFE :/ Allgemeine Java-Themen 11
Z auf static Methode aus anderen Package zugreifen? Allgemeine Java-Themen 7
N this im public static void Allgemeine Java-Themen 3
C Communication zwischen zwei Projekte - static objects Allgemeine Java-Themen 4
S static mit abstract und in interface Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben