Hallo zusammen,
ich möchte einen JColorChooser so anpassen, dass die nicht benötigten Panels entfernt werden.
logischerweise mit "removeChooserPanel(...)"
Also habe ich mit folgendem Code alle Panels anzeigen lassen, die im Chooser existieren.
Und ich bekomme 5 Zeilen mit "null".
1. wieso bekomme ich "null" und nicht die Namen der Panels?
2. ich hatte es irgendwie mal hinbekommen... dann habe ich jedoch
einmal
"DefaultSwatchChooserPanel" und viert mal
"DefaultChooserPanel" bekommen.
habe mir nichts dabei gedacht und dennoch mal versucht, ein Panel zu entfernen:
und ich bekam einen JColorChooser mit weiterhin allen 5 Panels...
Nun hab ichs mit dem folgenden Code aus dem Netz versucht:
und was bekomme ich? einen JColorChooser mit den 5 Standard-Panels
Was mache ich denn falsch?
Könnt ihr mir helfen?
Merci
ich möchte einen JColorChooser so anpassen, dass die nicht benötigten Panels entfernt werden.
logischerweise mit "removeChooserPanel(...)"
Also habe ich mit folgendem Code alle Panels anzeigen lassen, die im Chooser existieren.
Code:
JColorChooser chooser = new JColorChooser();
AbstractColorChooserPanel[] a = chooser.getChooserPanels();
for(AbstractColorChooserPanel item : a) {
System.out.println(item.getName());
}
Und ich bekomme 5 Zeilen mit "null".
1. wieso bekomme ich "null" und nicht die Namen der Panels?
2. ich hatte es irgendwie mal hinbekommen... dann habe ich jedoch
einmal
"DefaultSwatchChooserPanel" und viert mal
"DefaultChooserPanel" bekommen.
habe mir nichts dabei gedacht und dennoch mal versucht, ein Panel zu entfernen:
Code:
JColorChooser chooser = new JColorChooser();
AbstractColorChooserPanel[] a = chooser.getChooserPanels();
chooser.removeChooserPanel[a[0];
und ich bekam einen JColorChooser mit weiterhin allen 5 Panels...
Nun hab ichs mit dem folgenden Code aus dem Netz versucht:
Code:
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.colorchooser.AbstractColorChooserPanel;
public class test {
public static void main(String[] argv) {
JColorChooser chooser = new JColorChooser();
chooser.addChooserPanel(new MyChooserPanel());
chooser.showDialog(new JFrame(), "test", Color.BLACK);
}
}
class MyChooserPanel extends AbstractColorChooserPanel {
public void buildChooser() {
setLayout(new GridLayout(0, 3));
makeAddButton("Red", Color.red);
makeAddButton("Green", Color.green);
makeAddButton("Blue", Color.blue);
}
public void updateChooser() {
}
public String getDisplayName() {
return "MyChooserPanel";
}
public Icon getSmallDisplayIcon() {
return null;
}
public Icon getLargeDisplayIcon() {
return null;
}
private void makeAddButton(String name, Color color) {
JButton button = new JButton(name);
button.setBackground(color);
button.setAction(setColorAction);
add(button);
}
Action setColorAction = new AbstractAction() {
public void actionPerformed(ActionEvent evt) {
JButton button = (JButton) evt.getSource();
getColorSelectionModel().setSelectedColor(button.getBackground());
}
};
}
und was bekomme ich? einen JColorChooser mit den 5 Standard-Panels
Was mache ich denn falsch?
Könnt ihr mir helfen?
Merci