In meiner Anwendung habe ich eine JFrame
Anzeige einer JSplitPane
, mit der Aufteilung VERTICAL_SPLIT
. Oben wird JLabel
angezeigt, und unten wird JInternalFrame
angezeigt. Zwei Probleme treten auf.JSplitPane nicht Malerei Korrektur
Die
JLabel
anzeigt, aber dieJInternalFrame
nicht.2. Ich habe die Anwendung, um die Größe an allen
die JSplitPane
Anzeige zu haben, ich glaube, dies sowohl zu einer falschen Verwendung von JSplitPane
verbunden ist. Ich konnte jedoch nicht herausfinden, was. Darf ich bitte etwas Hilfe zu diesem Thema haben?
p.s. Ich habe Tests ausgeführt, um sicherzustellen, dass GUIWindow.getInsideFrame()
nicht null
zurückgibt. Die instanceof
Überprüfungen am Ende sagen, dass beide Komponenten im Bereich existieren und von diesem Typ sind. Vielen Dank für Ihre Hilfe:
protected static void newWindow(GUIFrame window) {
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
JSplitPane pane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
JInternalFrame intFrame = window.getInsideFrame();
pane.setRightComponent(intFrame);
pane.setLeftComponent(new JLabel(window.getDescription()));
synchronized(lock){
frame.remove(currentPane);
frame.add(pane);
}
synchronized(lock){
frame.revalidate();
pane.setVisible(true);
frame.repaint();
if(window instanceof ColourFrameShower) return;
currentWindow = window;
currentPane = pane;
currentFrame = intFrame;
}
if(pane.getLeftComponent() instanceof JLabel) System.out.println("JLabel exists!");
else System.out.println("JLabel does not exist!");
if(pane.getRightComponent() instanceof JInternalFrame) System.out.println("JInternalFrame exists!");
else System.out.println("JInternalFrame does not exist!");
}
});
}
EDIT: Ich Problem 2 mit einem Aufruf an frame.revalidate()
zu Beginn des zweiten synchronised(lock)
Blockes befestigt. Dies wurde in den Code aufgenommen.
Danke für die Bearbeitung :) – JD9999
Haben Sie versucht, Ihre JInternalFrame allein angezeigt werden, ohne dass die JSplitPanel? Funktioniert es ? :) – Kapcash
Ja, ohne JSplitPanel funktioniert es. Siehe die neueste Version der gesamten Anwendung auf meinem GitHub: https://github.com/JD9999/GUI-of-everything – JD9999