gpt4 book ai didi

java - JLabel 仅显示 initComponents() 是否被删除

转载 作者:行者123 更新时间:2023-12-02 00:08:44 25 4
gpt4 key购买 nike

MainFrame.java -JFrame

public MainFrame() {
initComponents();
Letters pl = new Letters(this);
this.setContentPane(pl);
this.setTitle("Preset Lessons");
this.pack();
}

Letters.java -JPanel

public Letters(JFrame frame) {
initComponents();
JLabel label = new JLabel();
label.setText("Sample");
this.add(label);
}

如果 Letters.java 中的 initComponents() 被删除,那么 JLabel 才会出现。如何将新的 JLabel 添加到现有的 JPanel 中?

Letters.java 的 initComponents() 的内容;如果我删除构造函数中的 iniComponents 它将创建 JLabel。

private void initComponents() {

jLabelLetters = new javax.swing.JLabel();
jLabelNumbers = new javax.swing.JLabel();
jLabelFlashcards = new javax.swing.JLabel();
jLabelStories = new javax.swing.JLabel();
jComboBox1 = new javax.swing.JComboBox();

setMaximumSize(new java.awt.Dimension(333333, 333333));
setMinimumSize(new java.awt.Dimension(800, 600));
setPreferredSize(new java.awt.Dimension(800, 600));

jLabelLetters.setFont(new java.awt.Font("Tahoma", 1, 18));
jLabelLetters.setText("Letters");

jLabelNumbers.setFont(new java.awt.Font("Tahoma", 0, 14));
jLabelNumbers.setText("Numbers");
jLabelNumbers.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jLabelNumbersMouseClicked(evt);
}
});

jLabelFlashcards.setFont(new java.awt.Font("Tahoma", 0, 14));
jLabelFlashcards.setText("Flashcards");
jLabelFlashcards.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jLabelFlashcardsMouseClicked(evt);
}
});

jLabelStories.setFont(new java.awt.Font("Tahoma", 0, 14));
jLabelStories.setText("Stories");
jLabelStories.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jLabelStoriesMouseClicked(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(25, 25, 25)
.addComponent(jLabelLetters)
.addGap(75, 75, 75)
.addComponent(jLabelNumbers)
.addGap(76, 76, 76)
.addComponent(jLabelFlashcards)
.addGap(75, 75, 75)
.addComponent(jLabelStories)
.addGap(89, 89, 89)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 206, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(32, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabelFlashcards)
.addComponent(jLabelStories))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGap(4, 4, 4)
.addComponent(jComboBox1, javax.swing.GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabelLetters)
.addComponent(jLabelNumbers)))
.addGap(565, 565, 565))
);
}// </editor-fold>

最佳答案

问题是当使用 GroupLayout 时容器上的所有组件都必须添加到布局的水平和垂直平行组中:

Letters.java 中,您已将 JLabel 添加到容器,但尚未将其附加到布局的 2 组,因此不会将任何内容显示为结果。

要修复此问题,您可以将标签创建移至 initComponents 方法并添加到组中:

layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(25, 25, 25)
.addComponent(jLabelLetters)
.addGap(75, 75, 75)
.addComponent(jLabelNumbers)
.addGap(76, 76, 76)
.addComponent(jLabelFlashcards)
.addGap(75, 75, 75)
.addComponent(jLabelStories)
.addGap(89, 89, 89)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 206, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(32, Short.MAX_VALUE))
.addComponent(label)
);

layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabelFlashcards)
.addComponent(jLabelStories))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGap(4, 4, 4)
.addComponent(jComboBox1, javax.swing.GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabelLetters)
.addComponent(jLabelNumbers)))
.addComponent(label)
.addGap(565, 565, 565))
);

关于java - JLabel 仅显示 initComponents() 是否被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314336/

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