Hallo,
ich habe hier ein Dialog Objekt, welches beim Größer ziehen folgendes Phänomen zeigt:
Ist jetzt vielleicht durch das Zensieren erstmal blöd zu erkennen. Beim Größer ziehen habe ich das Problem, dass solange ich mit der Maus nicht kurz anhalte der neu erschlossene Inhalt schwarz ist.
Hier hat einer das selbe Problem:
Was kann ich da machen?
Hier ist der Auszug aus meinem Code:
ich habe hier ein Dialog Objekt, welches beim Größer ziehen folgendes Phänomen zeigt:
Ist jetzt vielleicht durch das Zensieren erstmal blöd zu erkennen. Beim Größer ziehen habe ich das Problem, dass solange ich mit der Maus nicht kurz anhalte der neu erschlossene Inhalt schwarz ist.
Hier hat einer das selbe Problem:
How to Remove Black Rectangle on Window Resize?
I am developing a JFrame window with Swing and AWT, and when I resize the window, it looks like this: As you can see, a lot of times when I resize the window, it shows a black rectangle where it is
stackoverflow.com
Was kann ich da machen?
Hier ist der Auszug aus meinem Code:
Java:
ServicePanel dialogPnl = new ServicePanel();
JPanel workaroundPanel = new JPanel(new BorderLayout());
workaroundPanel.add(dialogPnl);
dialogPnl.addHierarchyListener(e -> {
Window window = SwingUtilities.getWindowAncestor(dialogPnl);
if (window instanceof Dialog)
{
Dialog dialog = (Dialog) window;
if (!dialog.isResizable())
{
dialog.setResizable(true);
}
dialog.setMinimumSize(new Dimension(345, 260));
dialog.setLocationRelativeTo(null);
Java:
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import net.miginfocom.layout.CC;
import net.miginfocom.swing.MigLayout;
public class ServicePanel extends JPanel
{
JPanel listPanel = new JPanel(new MigLayout("wrap 3", "[]5[]5[]"));
JScrollPane scrollPaneForListPanel = new JScrollPane(listPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
public ServicePanel()
{
setLayout(new MigLayout("wrap 2", ""));
add(new JLabel("Eintrag 1"));
add(new JLabel("Eintrag 2"));
add(new JLabel("Eintrag 3"));
listPanel.add(new JLabel("Eintrag 4"));
listPanel.add(new JLabel("Eintrag 5"));
listPanel.setBorder(BorderFactory.createEmptyBorder());
scrollPaneForListPanel.getVerticalScrollBar().setUnitIncrement(15);
updateScrollPaneDimensions();
add(scrollPaneForListPanel, new CC().spanX());
}
private void updateScrollPaneDimensions()
{
int maxHeightScrollPane = Toolkit.getDefaultToolkit().getScreenSize().height / 2;
scrollPaneForListPanel.setPreferredSize(
new Dimension(Toolkit.getDefaultToolkit().getScreenSize().width, Toolkit.getDefaultToolkit().getScreenSize().height));
if (listPanel.getPreferredSize().height < maxHeightScrollPane)
{
this.setPreferredSize(new Dimension(0, listPanel.getPreferredSize().height + 115));
}
else
{
this.setPreferredSize(new Dimension(0, maxHeightScrollPane));
}
}
}