第一次在这里发帖,让我首先说我是一个Java菜鸟,我今年才开始在大学里学习。
所以无论如何,我必须为Tamagotchi项目创建一个UI,我正在尝试使用JFrame等创建它。
这就是我要创建的内容:
到目前为止,这是我的代码:
import javax.swing.*;
import java.awt.*;
public class DogUI {
private JFrame DogUI;
private JPanel leftPanel, topPanel, bottomPanel, rightPanels;
private JButton jb;
private JLabel lb, lb1, lb2;
public DogUI() {
GUI();
}
public void GUI() {
DogUI = new JFrame("Dog UI");
DogUI.setSize(800, 600);
DogUI.setResizable(false);
leftPanel = new JPanel();
leftPanel.setBackground(Color.green);
leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.Y_AXIS));
topPanel = new JPanel();
topPanel.setBackground(Color.white);
bottomPanel = new JPanel();
bottomPanel.setBackground(Color.red);
rightPanels = new JPanel();
rightPanels.setLayout(new BoxLayout(rightPanels, BoxLayout.X_AXIS));
DogUI.setVisible(true);
lb = new JLabel("Name: ");
leftPanel.add(lb);
lb1 = new JLabel("Image");
topPanel.add(lb1);
lb2 = new JLabel("Buttons");
bottomPanel.add(lb2);
rightPanels.add(topPanel);
rightPanels.add(bottomPanel);
DogUI.add(rightPanels);
}
public static void main(String [] args) {
new DogUI();
}
}
这就是我最终的结果:
我确信这很简单,或者说我做错了,但如果可能的话,请尝试用外行的方式解释。
感谢。 克里斯。
答案 0 :(得分:2)
rightPanels
添加到框架中,而不是添加leftPanel
rightPanel
正在使用水平的X_AXIS
。你想要Y_AXIS
leftPanel
时,您需要将框架的布局设置为GridLayout(1, 2)
。请参阅GridLayout setVisible
。DogUI
→dogUI
main
中的代码包装在SwingUtilities.invokeLater(...)
中来完成此操作。请点击Initial Threads 答案 1 :(得分:1)
听起来你想要一个带有BorderLayout的父JPanel。那个父JPanel包含另外两个面板,位于它的东侧和西侧。西侧可以包含您的进度面板,东侧包含另一个JPanel,其GridLayout为1列和2行,或者是BorderLayout。从那里你可以将另外两个JPanel添加到最后一个JPanel,它代表图片右侧的任何一个。
整体父JPanel也可以是一个包含2列和1行的GridLayout,但是BorderLayout可能看起来更好,因为您可能会发现应用程序的一侧可能不需要那么多空间并且可能限制它占用的空间。也许东面板也应该是BorderLayout,因为你的图像可能不会占用北侧的那么多空间,使得南侧的组件可以容纳其余部分的可用空间。
答案 2 :(得分:1)
尝试使用GridLayout。
public void GUI() {
DogUI = new JFrame("Dog UI");
DogUI.setSize(800, 600);
DogUI.setResizable(false);
DogUI.setLayout(new GridLayout(1,2));//1row 2col
leftPanel = new JPanel();
leftPanel.setBackground(Color.green);
topPanel = new JPanel();
topPanel.setBackground(Color.white);
bottomPanel = new JPanel();
bottomPanel.setBackground(Color.red);
rightPanels = new JPanel();
rightPanels.setLayout(new GridLayout(2,1));//2row 1col
lb = new JLabel("Name: ");
leftPanel.add(lb);
lb1 = new JLabel("Image");
topPanel.add(lb1);
lb2 = new JLabel("Buttons");
bottomPanel.add(lb2);
rightPanels.add(topPanel);
rightPanels.add(bottomPanel);
DogUI.add(leftPanel);
DogUI.add(rightPanels);
DogUI.setVisible(true);
}