Столкнулся с такой проблемой. При схлопывании окна нижний JXTaskPaneContainer наезжает на верхний элемент (JTextArea). Происходит из-за того, что я в JTextArea в конструкторе жестко задал границы, т.к. необходимо было убрать большую пустую область между двумя элементами и зафиксировать Area примерно на одном уровне с Container. Часть кода - класс и конструктор класса ниже прилагаю. Как решить проблему?
UPD - если убрать бордеры (EmptyBorder у JTextArea), верстка не едет, но теперь будет большое пространство между элементами, но необходимо, чтобы пространство было как на первой картинке, т.е. минимальное.
private class ExtendedStatusPanel extends JPanel {
protected JLabel serverNameLabel;
protected JTextArea statusPanel;
private final JPanel statusPanelWrapper = new JPanel(new FlowLayout(FlowLayout.LEFT));
private List<MonitorStatus> alertsGroups;
private JXTaskPaneContainer jxTaskPaneContainer = new JXTaskPaneContainer();
public ExtendedStatusPanel(final MonitorServer monitorServer) {
setLayout(new BorderLayout());
setBorder(BorderFactory.createLineBorder(Color.BLACK));
final JPanel serverNamePanel = new JPanel(new FlowLayout(0));
(serverNameLabel = new JLabel(monitorServer.getHost(), 2)).setCursor(Cursor.getPredefinedCursor(12));
serverNameLabel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(final MouseEvent mouseEvent) {
monitorClient.selectDetailsTab();
monitorClient.selectServer(monitorServer);
}
});
serverNamePanel.add(serverNameLabel);
jxTaskPaneContainer.setBackground(new Color(238,238,238));
statusPanelWrapper.setLayout((new BoxLayout(statusPanelWrapper, 3)));
statusPanel = new JTextArea();
statusPanel.setForeground(UIManager.getColor("Label.foreground"));
statusPanel.setBackground(UIManager.getColor("Label.background"));
statusPanel.setBorder(new EmptyBorder(10,15,-200,10));
statusPanel.setEditable(false);
statusPanel.setFont(UIManager.getFont("Label.font"));
statusPanel.getKeymap().addActionForKeyStroke(ks, TransferHandler.getCopyAction());
alertsGroups = new ArrayList<>();
statusPanelWrapper.add(statusPanel);
statusPanelWrapper.add(jxTaskPaneContainer);
add(serverNamePanel, "North");
add(statusPanelWrapper, "Center");
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть элемент созданный с помощью drawImage и какого-либо изображенияХотелось бы узнать, как можно реализовать удаление элемента по клику на нём?
Не понимаю как отрабатывает Mathrandom() и что он генерирует и умножает на surnameLength например
Во время подготовки к экзамену OCA по Боярскому, встретил пример на стр178 Он касается модификатора доступа protected и звучит примерно так, что...
Вот здесь похожий вопросОтвет кроется в вашем методе main(){} как уже подметил @Grundy