新手Java程序员在这里:为什么JLabel不在这个Java应用程序的中心?
我讨厌问的问题我每次碰到问题的时候,但我不明白我应该用什么来获得绿色的“Hello World”的标签,直接进入到JPanel的中心。这里是我的代码:
package game;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Javagame extends JPanel implements ActionListener{
protected JButton b1;
private JLabel label;
public Javagame() {
b1 = new JButton("Button!");
b1.setActionCommand("change");
b1.addActionListener(this);
add(b1);
label = new JLabel("Hello World!", SwingConstants.CENTER);
label.setFont(new Font("Arial", Font.BOLD, 20));
label.setForeground(new Color(0x009900));
add(label, BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e) {
if ("change".equals(e.getActionCommand())) {
label.setText("Hello Universe!");
b1.setActionCommand("changeBack");
}
if ("changeBack".equals(e.getActionCommand())) {
label.setText("Hello World!");
b1.setActionCommand("change");
}
}
private static void createWindow(){
JFrame frame = new JFrame("Javagame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(500,500));
Javagame newContentPane = new Javagame();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
createWindow();
}
}
BorderLayout.CENTER
似乎并不add()
工作。任何帮助将不胜感激,谢谢!
您好,感谢您的回复。我应该在哪里放置代码?我将代码插入到'public(public)Javagame()'上面'add(label,BorderLayout.CENTER);'但它不起作用。 对不起,我发牢骚... – BitLion
好吧,你可以把它放在任何地方,但是我会在你将标签添加到容器之前把它放入 – MadProgrammer
水平/垂直对齐默认为CENTER。这段代码是不需要的。 – camickr