Я хотел бы сделать дизайн, как в следующем,Как установить смещения между JPanels и JFrame?
Я пытаюсь поставить offesets между JPanel, и JFrame и я получаю что-то похожее на это,
У меня есть код как следующий, где я из 2 JPanels внутри JFrame.
private static void createAndShowGUI() {
JFrame frame = new JFrame("My App");
GridLayout myLayout = new GridLayout(1,2);
myLayout.setHgap(10);
frame.setLayout(myLayout);
JPanel jLeftPanel = new JPanel();
JPanel jRightPanel = new JPanel();
jLeftPanel.setBackground(Color.DARK_GRAY);
jLeftPanel.setSize(275, 250);
jRightPanel.setBackground(Color.DARK_GRAY);
jRightPanel.setSize(275, 250);
frame.add(jLeftPanel);
frame.add(jRightPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// frame.pack();
frame.setSize(600, 550);
frame.setVisible(true);
}
Как улучшить дизайн?
Большое спасибо за ваш ответ, это работает. Как положить кнопку в нижней правой части левой панели, которая будет принимать 2 параметра (ширина и высота) и нарисовать фигуру на правой панели? Я борюсь за это в течение последних 3 часов, небольшая помощь оценивается. – Chak
Извините за поздний ответ. Я бы использовал BorderLayout для левой панели, затем добавлю две внутренние панели, панель GridLayout в центре для текстовых полей ввода и панель FlowLayout на юге для кнопки (FlowLayout может выровнять по правому краю). Справа я бы подклассифицировал JPanel и сам рисовал фигуру в переопределенном методе JComponent.paintComponent(). Кроме того, у Oracle есть [руководство по компонентам, окрашенным по индивидуальному заказу] (https://docs.oracle.com/javase/tutorial/uiswing/painting/). –
Кроме того, если вы хотите создать сложные макеты, обратите внимание, что встроенные менеджеры макетов для AWT/Swing очень ограничены и утомительны для использования в более широком масштабе. Я рекомендую посмотреть на сторонних менеджеров макетов, в частности [JGoodies FormLayout] (http://www.jgoodies.com/freeware/libraries/forms/). –