[quote=SlaterB]bei der Initialisierung wird die Color sicher nur einmalig übernommen,
die GUI interessiert sich nicht dafür ob irgendwo eine statische Variable besteht oder es ein Zufallswert war oder wer weiß was,
da gibt es keine feste Verbindung, sondern es wurde nur der aktuelle Wert übertragen[/quote]
Ja das habe ich auch gemerkt.^^
[quote=SlaterB;140207]vergleichbar Parameterübergabe Call by Value, falls dir das Thema was sagt
Java: Call-by-Value oder Call-by-Reference?
bzw. simpel
Java Code:
int x = 45;
array** = x;
// x neuen Wert zuweisen, Array schnuppe
auch für Objekte != primitive Datentypen gilt:
wenn einer Variablen ein neuer Wert zugewiesen wird, dann muss das alle Verwender des vorherigen Wertes nicht interessieren[/quote]
Habe ich mir durchgelesen aber nicht genau verstanden was das nun wirklich meint.
[quote=SlaterB;140207]nötig ist wohl, nach dem Einlesen wieder manuell in der GUI etwas zu ändern,
eine statische Klasse kann das alleine nicht,
aber nach Auslösen der Aktion (GUI-Button?) könnte der ActionListener mit Zugriff auf GUI als auch statische Klasse das machen,
theoretisch wäre denkbar, bei der statischen Klasse eine Callback-Aktion zu hinterlassen, die von der GUI weiß,
von der GUI am Anfang dort abgelegt, und die dann in der statischen Klasse aufgerufen wird, aber so exotisch muss es ja nicht werden[/quote]
Ein JButton ruft den Aufruf alles neu einzulesen und dann die Werte neu zu setzen.
Hatte ich nur hinzugefügt um zu erläutern, das ich weiß wie man sie ändert nur das es ein spezielles Problem habe.^^
Nicht das jemand einfach ‚das geht mit panel.setBackground()‘ schreibt.
Mit freundlichem Gruß,
MrSmile07
*** Edit ***
Oh L-ectron-X habe grade erst beim verfassen die Nachricht gelesen.
Grober Quelltext
Datei 1 (Das zu ändernde Panel)
public class Options extends JPanel{
private static final long serialVersionUID = 1L;
private Color optionscolor = ReadSkin.optionscolor;
public Options(final Main m) {
setBackground(new Color(optionscolor.getRed(), optionscolor.getGreen(), optionscolor.getBlue(), 200));
}
}
Datei 2 (Der Reader)
import java.awt.Color;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class ReadSkin {
private static String line[] = new String[10];
public static Color optionscolor = Color.BLACK;
public static Color browserpanelcolor = Color.BLACK;
public static Color imagepanelcolor = Color.BLACK;
public static Color menubarcolor = Color.BLACK;
public static Color sidemenucolor = Color.BLACK;
public static Color settingspanelcolor = Color.BLACK;
public static Color manualpanelcolor = Color.BLACK;
public static Color aboutpanelcolor = Color.BLACK;
public static Color scrollbarColor = Color.WHITE;
public static Color knobColor = Color.BLACK;
static BufferedReader b;
static int cline = 0;
public static void read(){
try {
b = new BufferedReader(new FileReader(new File(System.getProperty("user.home") +"/LeafView/skins/" + ReadSettings.skin + ".skin")));
while((line[cline] = b.readLine()) != null){
if(line[cline].contains("ContextMenu ")){
String[] arr = (line[cline].replace("ContextMenu ", "")).split(", ");
optionscolor = new Color(Integer.parseInt(arr[0]),Integer.parseInt(arr[1]),Integer.parseInt(arr[2]));
}else if(line[cline].contains("Browser ")){
String[] arr = (line[cline].replace("Browser ", "")).split(", ");
browserpanelcolor = new Color(Integer.parseInt(arr[0]),Integer.parseInt(arr[1]),Integer.parseInt(arr[2]));
}else if(line[cline].contains("ImageList ")){
String[] arr = (line[cline].replace("ImageList ", "")).split(", ");
imagepanelcolor = new Color(Integer.parseInt(arr[0]),Integer.parseInt(arr[1]),Integer.parseInt(arr[2]));
}else if(line[cline].contains("TitleBar ")){
String[] arr = (line[cline].replace("TitleBar ", "")).split(", ");
menubarcolor = new Color(Integer.parseInt(arr[0]),Integer.parseInt(arr[1]),Integer.parseInt(arr[2]));
}else if(line[cline].contains("SideMenu ")){
String[] arr = (line[cline].replace("SideMenu ", "")).split(", ");
sidemenucolor = new Color(Integer.parseInt(arr[0]),Integer.parseInt(arr[1]),Integer.parseInt(arr[2]));
}else if(line[cline].contains("Settings ")){
String[] arr = (line[cline].replace("Settings ", "")).split(", ");
settingspanelcolor = new Color(Integer.parseInt(arr[0]),Integer.parseInt(arr[1]),Integer.parseInt(arr[2]));
}else if(line[cline].contains("Manual ")){
String[] arr = (line[cline].replace("Manual ", "")).split(", ");
manualpanelcolor = new Color(Integer.parseInt(arr[0]),Integer.parseInt(arr[1]),Integer.parseInt(arr[2]));
}else if(line[cline].contains("About ")){
String[] arr = (line[cline].replace("About ", "")).split(", ");
aboutpanelcolor = new Color(Integer.parseInt(arr[0]),Integer.parseInt(arr[1]),Integer.parseInt(arr[2]));
}else if(line[cline].contains("Scrollbar ")){
String[] arr = (line[cline].replace("Scrollbar ", "")).split(", ");
scrollbarColor = new Color(Integer.parseInt(arr[0]),Integer.parseInt(arr[1]),Integer.parseInt(arr[2]));
}else if(line[cline].contains("Knob ")){
String[] arr = (line[cline].replace("Knob ", "")).split(", ");
knobColor = new Color(Integer.parseInt(arr[0]),Integer.parseInt(arr[1]),Integer.parseInt(arr[2]));
}else{
cline++;
}
}
b.close();
cline = 0;
} catch (IOException e) {
//e.printStackTrace();
}
}
}