Hallo liebe Community,
ich bin neu hier und möchte nach erfolgloser Onlinerecherche nun euch um Rat fragen. Mein Problem ist, dass ich gerne einen Standard-JColorChooser verwenden möchte, allerdings den Font meines restlichen Programms und eben auch des JColorChoosers anpassen möchte.
Leider habe ich es bisher nur geschafft, den Font des Vorschaufensters zu verändern. Die Überschriften der Farbauswahl-Tabs, die Überschrift des Vorschaufensters, die Button-Beschriftungen, die Titelzeile "Change Font Color" und die Farbsammlung mit Überschrift "Aktuell:" konnte ich allerdings noch nicht beeinflussen. ;(
Anbei findet ihr ein Minimalbeispiel zur Veranschaulichung. Irgendwie habe ich das Gefühl, ich bin noch gar nicht zu der Ebene der Komponenten, welche ich anpassen möchte, runtergedrungen...
Habt ihr eine Idee, wie ich die Fonts abändern kann??? Über Hilfe würde ich mich sehr freuen!
Viele Grüße
Shadowqueen105
ich bin neu hier und möchte nach erfolgloser Onlinerecherche nun euch um Rat fragen. Mein Problem ist, dass ich gerne einen Standard-JColorChooser verwenden möchte, allerdings den Font meines restlichen Programms und eben auch des JColorChoosers anpassen möchte.
Leider habe ich es bisher nur geschafft, den Font des Vorschaufensters zu verändern. Die Überschriften der Farbauswahl-Tabs, die Überschrift des Vorschaufensters, die Button-Beschriftungen, die Titelzeile "Change Font Color" und die Farbsammlung mit Überschrift "Aktuell:" konnte ich allerdings noch nicht beeinflussen. ;(
Anbei findet ihr ein Minimalbeispiel zur Veranschaulichung. Irgendwie habe ich das Gefühl, ich bin noch gar nicht zu der Ebene der Komponenten, welche ich anpassen möchte, runtergedrungen...
Habt ihr eine Idee, wie ich die Fonts abändern kann??? Über Hilfe würde ich mich sehr freuen!
Viele Grüße
Shadowqueen105
Java:
//-------Die Hauptklasse---------
package helloworld;
public class HelloWorld {
public static void main(String[] args) {
ColoredFrame f = new ColoredFrame();
f.setSize(300, 200);
f.setVisible(true);
}
}
//-------Die eigentliche Problemklasse---------
package helloworld;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.colorchooser.AbstractColorChooserPanel;
public class ColoredFrame extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
private JColorChooser myChooser = new JColorChooser();
private JLabel hi;
private JButton bColor;
public ColoredFrame() {
super();
init();
}
private void init() {
this.setLayout(new BorderLayout());
this.getContentPane().setBackground(Color.white);
this.setFont(new Font("Arial", Font.PLAIN, 28));
hi = new JLabel("HelloWorld!");
hi.setPreferredSize(new Dimension(200,50));
hi.setFont(new Font("Arial", Font.PLAIN, 28));
this.add(hi, BorderLayout.NORTH);
bColor = new JButton("Change Color");
bColor.setPreferredSize(new Dimension(100,30));
bColor.addActionListener(this);
bColor.setActionCommand("colorChooser");
bColor.setFont(new Font("Arial", Font.PLAIN, 28));
this.add(bColor, BorderLayout.SOUTH);
}
@Override
public void actionPerformed(ActionEvent arg0) {
if (arg0.getActionCommand().equals("colorChooser")) {
JDialog dCC = JColorChooser.createDialog(
this, "Change Font Color", true, myChooser, new ActionListener() {
public void actionPerformed(ActionEvent e) {
Color newColor = myChooser.getColor();
hi.setForeground(newColor);
bColor.setForeground(newColor);
}
}, null);
//try to set font of the whole JDialog --> doesn't work
dCC.setFont(new Font("Arial", Font.PLAIN, 28));
//this works
myChooser.getPreviewPanel().setFont(new Font("Arial", Font.PLAIN, 28));
for (AbstractColorChooserPanel p: myChooser.getChooserPanels()) {
/*try to set font of the each AbstractColorChooserPanel
* --> doesn't work*/
p.setFont(new Font("Arial", Font.PLAIN, 28));
/*try to set font of the each component on each AbstractColorChooserPanel
* --> doesn't work*/
for (Component c: p.getComponents()) {
c.setFont(new Font("Arial", Font.PLAIN, 28));
}
}
dCC.setVisible(true);
}
}
}