/ / Použitie nového používateľského rozhrania na názov JInternalFrame - java, swing, uimanager

Použitie nového používateľského rozhrania na názov JInternalFrame - java, swing, uimanager

Nikdy som neurobil nič s používateľským rozhraním a predtým som dostal za úlohu zmeniť svoje názvy interných snímok. Používame Nimbus L&F a v našom správcovi používateľského rozhrania som vyskúšal

UIManager.put("InternalFrameTitlePane.background", Color.RED);

len aby som sa pokúsil niečo zmeniť. Neprišla mi práca a niekde som našiel ďalší príspevok o vytvorení používateľského rozhrania pomocou nástroja BasicInternalFrameTitlePane, takže teraz mám tento kód:

public class CFrameTitleUI extends BasicInternalFrameTitlePane {

public CFrameTitleUI(JInternalFrame f)
{
super(f);
}

@Override
public void paintTitleBackground(Graphics g)
{
g.setColor(Color.RED);
g.fillRect(0, 0, getWidth(), getHeight());
}
}

Ale teraz, keď to mám, nie som si istý, čo s tým robiť. Skúsil som nastaviť UI vo vnútornom rámci pomocou setUI() metóda, ale toto je záhlavie pre ňu, takže som si istý, že je to zle. Ďalej som to skúsil

UIManager.put("InternalFrameTitlePane.background", CFrameTitleUI.getClass().getName());

a

UIManager.put("InternalFrameTitlePane", CFrameTitleUI.getClass().getName());

ale nič. Musím to nejako zviazať s Nimbus L&F? Niektoré z vecí, ktoré nastavujeme, hovoria "nimbusSelection" atď..

Hlavnými otázkami sú, či správne vytváram vlastné používateľské rozhranie pre názvy interných snímok a ako ich môžem použiť.

odpovede:

0 pre odpoveď č. 1

Máš to isté?

tu zadajte popis obrázku

public class InternalFrameTest extends JFrame {

public InternalFrameTest() {

JDesktopPane desktop = new JDesktopPane();
JInternalFrame frame = new JInternalFrame("AHHHH!!!!", true);
frame.setSize(300, 300);
frame.setVisible(true);
frame.setOpaque(false);
desktop.add(frame);
setContentPane(desktop);
setSize(600, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}

public static void main(String[] args) {
try {
UIManager.setLookAndFeel(NimbusLookAndFeel.class.getName());
} catch (ClassNotFoundException|InstantiationException
|IllegalAccessException|UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
UIManager.put("InternalFrame:InternalFrameTitlePane[Enabled].textForeground", Color.RED);
new InternalFrameTest();
}
}

Keď bežím (bez toho, aby som na to nič nastavil)

System.out.println(UIManager.getColor("InternalFrame:InternalFrameTitlePane[Enabled].textForeground"));

dostávam

"DerivedColor(color=142,143,145 parent=nimbusDisabledText offsets=0.0,0.0,0.0,0 pColor=142,143,145"

Máš to isté?