当前位置: 首页 > 知识库问答 >
问题:

如何从桌面板设计面板并使面板居中

怀展
2023-03-14

我想做一个更大的分辨率/全屏,但我不知道我应该使用什么布局,你们能帮我选择一个更好的布局吗这是第一张图片的第一个代码

    tp = new JTabbedPane();
    tp.setBounds(0,0,250,400);
    panel = new JPanel();
    panel.setPreferredSize(new Dimension(250, 480));
    tp.addTab("Mahasiswa",panel);
    panel.setLayout(new FlowLayout());
    label_insert = new JLabel("NIM :               ");
    label_insert2 = new JLabel("ID Jurusan :   ");
    tf_insert1 = new JTextField(15);
    tf_insert2 = new JTextField(15);
    Insert = new JButton(" Insert ");
    //panel add

这一个,我想把它放在框架的中间,所有的都已经在面板上了,我怎样才能把它移到中间呢?这是第二张图片的代码

    public void mainform(){

    main = new JPanel();
    main.setLayout(new FlowLayout(FlowLayout.CENTER));
    label_main = new JLabel("ID");
    label_main2 = new JLabel("Password");
    tf_main = new JTextField(15);
    tf_main2 = new JPasswordField(15);
    login = new JButton("LOGIN");
    login.addActionListener(this);
    main.add(label_main);
    main.add(tf_main);
    main.add(label_main2);

共有2个答案

孙佑运
2023-03-14

我会考虑使用网格包布局,这将使您在组件的布局方式上具有更大的灵活性

import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class Test {

    public static void main(String[] args) {
        new Test();
    }

    public Test() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                    ex.printStackTrace();
                }

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.add(new TestPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class TestPane extends JPanel {

        public TestPane() {
            setLayout(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 0;
            gbc.insets = new Insets(2, 2, 2, 2);

            add(new JLabel("ID"), gbc);
            gbc.gridx++;
            add(new JTextField(20), gbc);
            gbc.gridx = 0;
            gbc.gridy++;
            add(new JLabel("Password"), gbc);
            gbc.gridx++;
            add(new JTextField(20), gbc);
            gbc.gridx = 0;
            gbc.gridy++;
            gbc.gridwidth = GridBagConstraints.REMAINDER;
            gbc.anchor = GridBagConstraints.CENTER;
            add(new JButton("Login"), gbc);
        }

    }

}

有关更多详细信息,请参阅在容器中布置组件和如何使用网格包布局

孟俊晖
2023-03-14

按照本指南,我会提出以下建议:

yourFrame = new JFrame();
yourFrame.setLayout(new BorderLayout());

tp = new JTabbedPane();
yourFrame.add(tp, BorderLayout.CENTER);

然后修改GridLayout、GridBagLayout或GroupLayout,使其成为tabbedpane中的选项卡。

 类似资料:
  • 问题内容: 我有一个带有代码的JPanel。当我用鼠标滚轮滚动时,我希望面板朝着面板中间的位置放大。当前,每当我用鼠标滚轮放大/缩小时,图像左上角的角都保持在同一位置。我很难找到正确的算法。 为了放大图片,代码使用AffineTransform对象,该对象根据双精度值缩放图像,该值根据鼠标滚轮的移动而增大或减小。 还增加了复杂性的是,还可以在面板周围单击和拖动图像。如果单击并拖动它,则缩放仍必须放

  • 问题内容: 我用Google搜索了很多东西,但没有找到解决方案。我认为应该有Java大师来帮助我… 这是我的初始化方法: 这是JPanel另一个步骤0的方法: 完全没有任何回应,我尝试过重新验证,重新粉刷和其他工作人员…不起作用…任何人在这里都可以得到意见! 问题答案: 这就是将正确的方法和常量String暴露给外界,以允许类交换视图本身。例如,给您的第一堂课一个私有的CardLayout字段,称

  • 默认面板 <section class="ui-panel ui-grid ui-grid-trisect"> <h2 class="ui-arrowlink">猜你喜欢<span class="ui-panel-subtitle">1328条</span></h2> <ul> <li> <div class="ui-img-vert

  • 你可以通过使用cmd-k arrow快捷键来横向或者纵向分割编辑器的面板,其中“arrow”是要分割的方向。面板被分割后,你可以使用cmd-k cmd-arrow快捷键在它们之间移动焦点,其中“arrow”是焦点要移动的方向。 每个面板都有它自己的“条目”或文件,它们由标签页来表示。你可以通过拖动文件,并把它放到想要放进去的面板中,来在面板之间移动文件。 要关闭一个面板,按下cmd-w来关闭它的所

  • 我正在构建一个Java程序。该程序的核心在JFrame中可视化,其中包含一个JMenuBar和各种JMenuItem和JMenu。关键是我在所有框架中添加了一个centralPanel,但是如果我在centralPanel中添加了一些内容,那么只有在调整主框架的大小、缩小或放大它时,它才会显示出来!代码如下: 这是构造函数: 在这里,我添加了中央面板,在这里,在ActionListener中,我试

  • 问题内容: 我正在尝试在面板中居中放置字符串。 目前,我正在这样做: 我可以使用一种方法来简化此任务吗? 例如: 似乎我正在做很多工作只是为了使文本居中。 问题答案: 在Java标准库中?不,您可以随时做一些事情 用