Hallo zusammen,
Worum gehts:
ich bastel gerade an einem kleinen Programm, in dem es ein Hauptfenster mit mehreren Unterfenstern geben soll (JFrame, JInternalFrame's). Ich passe gerade das ausshen des Look&Feel (Nimbus L&F) meinen wünschen an.
Ich habe nun folgendes Problem:
Ich möchte, dass das selektierte Unterfenster (isSelected() == true) optisch nicht vom unselektierten (isSelected() == false) Unterfenster unterscheidet. Ich habe schon einige versuche Unternommen aber der Farbverlauf in der Titelleiste ist verdammt hartnäckig.
Ich habe zwar eine lösung gefunden (isSelected() überschreiben und true/false zurückgeben), allerdings verändert diese das vordergrund/hintergrund verhalten der Unterfenster (und ist im übrigen ein ziemlich schmutziger workaround)
Am meisten würde ich mich über eine Java 1.6 kompatible Lösung freuen.
Hier Demo-Code
Worum gehts:
ich bastel gerade an einem kleinen Programm, in dem es ein Hauptfenster mit mehreren Unterfenstern geben soll (JFrame, JInternalFrame's). Ich passe gerade das ausshen des Look&Feel (Nimbus L&F) meinen wünschen an.
Ich habe nun folgendes Problem:
Ich möchte, dass das selektierte Unterfenster (isSelected() == true) optisch nicht vom unselektierten (isSelected() == false) Unterfenster unterscheidet. Ich habe schon einige versuche Unternommen aber der Farbverlauf in der Titelleiste ist verdammt hartnäckig.
Ich habe zwar eine lösung gefunden (isSelected() überschreiben und true/false zurückgeben), allerdings verändert diese das vordergrund/hintergrund verhalten der Unterfenster (und ist im übrigen ein ziemlich schmutziger workaround)
Am meisten würde ich mich über eine Java 1.6 kompatible Lösung freuen.
Hier Demo-Code
Java:
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
public class DesktopPaneDemo extends JFrame
{
public static void main(String[] args)
{
try
{
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels())
{
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (Exception e) {
// If Nimbus is not available, you can set the GUI to another look and feel.
}
new DesktopPaneDemo();
}
public DesktopPaneDemo()
{
JDesktopPane jdp = new JDesktopPane();
this.setContentPane(jdp);
this.setSize(800,600);
this.setVisible(true);
JInternalFrame demoFrameOne = new JInternalFrame("Frame 1",true,true,true);
demoFrameOne.setSize(300, 300);
demoFrameOne.setLocation(50,100);
JInternalFrame demoFrameTwo = new JInternalFrame("Frame 2",true,true,true);
demoFrameTwo.setSize(300, 300);
demoFrameTwo.setLocation(400,100);
jdp.add(demoFrameOne);
jdp.add(demoFrameTwo);
demoFrameOne.setVisible(true);
demoFrameTwo.setVisible(true);
jdp.setSelectedFrame(demoFrameTwo);
}
}
Anhänge
Zuletzt bearbeitet: