gpt4 book ai didi

java - 按钮变得不可见

转载 作者:行者123 更新时间:2023-12-01 10:01:07 25 4
gpt4 key购买 nike

当我向下然后返回时,按钮消失。我不知道为什么..对此有什么建议吗?我尝试在 google/stackoverflow 中搜索,但没有找到答案。无论如何,我对这个问题没有任何想法,我尝试了一切

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.EmptyBorder;

public class GenerateExam extends JFrame {

private JPanel contentPane;
private JButton button;

public GenerateExam() {
setTitle("Test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(0, 0, 800, 600);
button = new JButton("Click me!");
button.setBounds(50, 100, 100, 200);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
contentPane.add(button);

setContentPane(contentPane);
JPanel container = new JPanel();
JScrollPane jsp = new JScrollPane(container);
jsp.getVerticalScrollBar().setUnitIncrement(16);
container.setPreferredSize(new Dimension(750, 4000));
container.setLayout(null);

getContentPane().add(jsp);
centerFrame();

}

private void centerFrame() {
Dimension windowSize = getSize();
GraphicsEnvironment g = GraphicsEnvironment.getLocalGraphicsEnvironment();
Point centerPoint = g.getCenterPoint();

int dx = centerPoint.x - windowSize.width / 2;
int dy = centerPoint.y - windowSize.height / 2;
setLocation(dx, dy);
}

public static void main(String[] args) {
GenerateExam exam = new GenerateExam();
exam.setVisible(true);
}

}

最佳答案

contentPane.setLayout(new BorderLayout(0, 0));
contentPane.add(button);

setContentPane(contentPane);
JPanel container = new JPanel();
JScrollPane jsp = new JScrollPane(container);
jsp.getVerticalScrollBar().setUnitIncrement(16);
container.setPreferredSize(new Dimension(750, 4000));
container.setLayout(null);

getContentPane().add(jsp);
  1. 您将内容 Pane 设置为具有 BorderLayout。
  2. 然后将“button”添加到 contentPane,并将“jsp”添加到 contentPane。3.问题是您没有指定约束,因此两个组件都添加到“CENTER”。但是,“CENTER”中只能显示单个组件,因此仅显示滚动 Pane 。
  3. 但是,滚动 Pane 包含一个空面板,因此看不到任何内容。

不太确定您要做什么,但您可以尝试以下操作:

JPanel contentPane = new JPanel( new BorderLayout() );
setContentPane( contentPane );

JButton button = new JButton("Click Me");
add(button, BorderLayout.PAGE_START);

JScrollPane scrollPane = new JScrollPane( new JTextArea(10, 40) );
add(scrollPane, BorderLayout.CENTER);

pack();
setLocationRelativeTo(null); // this will center the frame

不要:

  1. 使用空布局
  2. 使用 setBounds()
  3. 使用 setPreferredSize()

关于java - 按钮变得不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36799438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com