Java GUI&;边界布局
我先读了Java版的Head一书,我不明白为什么它们没有正确地垂直显示项目。代码是Java GUI&;边界布局,java,swing,layout-manager,border-layout,Java,Swing,Layout Manager,Border Layout,我先读了Java版的Head一书,我不明白为什么它们没有正确地垂直显示项目。代码是 import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.Font; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swi
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
public class QuizCardBuilder {
private JTextArea question;
private JTextArea answer;
private JFrame frame;
public static void main(String[] args) {
QuizCardBuilder card = new QuizCardBuilder();
card.go();
}
public void go(){
frame = new JFrame("Quiz Card Builder");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel =new JPanel();
question = new JTextArea(10,20);
question.setLineWrap(true);
question.setWrapStyleWord(true);
question.setFont(new Font("Serif", Font.ITALIC, 16));
JScrollPane scrollPane = new JScrollPane(question);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
answer = new JTextArea(10,20);
answer.setLineWrap(true);
answer.setWrapStyleWord(true);
answer.setFont(new Font("Calibri", Font.BOLD, 21));
JScrollPane qScroll = new JScrollPane(answer);
qScroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
qScroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JButton nextBtn = new JButton("Next Card");
JLabel qLabel = new JLabel("Question:");
JLabel aLabel = new JLabel("Answer:");
panel.add(qLabel);
panel.add(scrollPane);
panel.add(aLabel);
panel.add(qScroll);
panel.add(nextBtn);
JMenuBar menuBar=new JMenuBar();
JMenu fileMenu = new JMenu("File");
JMenuItem newMenuItem = new JMenuItem("New");
JMenuItem saveMenuItem = new JMenuItem("Save");
fileMenu.add(newMenuItem);
fileMenu.add(saveMenuItem);
menuBar.add(fileMenu);
frame.setJMenuBar(menuBar);
frame.getContentPane().add(panel, BorderLayout.CENTER);
frame.setSize(500, 600);
frame.setVisible(true);
}
}
我应该使用
GridLayout
?还有一个我不明白的问题?您可以将面板的布局设置为a,允许组件垂直对齐:
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
您可以将面板的布局设置为a,允许组件垂直对齐:
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
“为什么它们没有正确显示项目,垂直”您将所有组件放置在一个面板中,该面板具有默认的FlowLayout
,使其水平对齐。“为什么它们没有正确显示项目,垂直”您将所有组件放置在一个面板中,该面板具有默认的FlowLayout
,将它们水平对齐。如果这有助于解决问题,请联系。@Θανά∑ης不客气。如果您的问题已经解决,请接受答案。如果它有助于解决问题,请接受答案。@Θανάσης不客气。如果您的问题已经解决,请接受答案。