【发布时间】:2015-09-12 11:43:47
【问题描述】:
我想知道是否可以在没有 JFrames 的情况下使用 JPanel,因为我正在制作一个要求编写故障报告的程序。我正在将 JOptionpane 用于新窗口,但每次我尝试向 textArea 添加滚动条时,它都会从屏幕上消失,但如果我在 JFrames 中这样做,它不会。我需要使用 JPanel,因为我在一帧中有 2 个 Jpanel,每个人都必须分别有一个滚动条,请帮助谢谢.......
public class aa {
private static JScrollPane pane;
public static void main(String[] arg){
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(425, 400));
panel.setLayout(null);
JLabel labelName= new JLabel("Name and Surname");
JTextField textFieldName = new JTextField();
JLabel labelFailSubject= new JLabel("Fail Subject");
JTextField textFieldFailSubject = new JTextField(15);
JLabel labelTime= new JLabel("Fail Time");
JTextField textFieldFailTime = new JTextField(8);
JLabel labelFailDate = new JLabel("Fail Date");
JTextField textFieldFailDate= new JTextField(8);
JLabel labelFailReport= new JLabel("Fail Report");
JTextArea textBoxFailReport = new JTextArea();
pane = new JScrollPane(textBoxFailReport);
panel.add(labelName);
panel.add(textFieldName);
panel.add(labelFailDate);
panel.add(textFieldFailDate);
panel.add(labelTime);
panel.add(textFieldFailTime);
panel.add(labelFailSubject);
panel.add(textFieldFailSubject);
panel.add(labelFailReport);
panel.add(textBoxFailReport);
textBoxFailReport.setLineWrap(true);
JOptionPane.showMessageDialog(null, panel, "Fail Report", JOptionPane.PLAIN_MESSAGE);
}
}
【问题讨论】:
-
“我使用 null 作为布局,因为我将 setBounds 用于所有项目的位置” Java GUI 必须在不同的操作系统、屏幕尺寸、屏幕分辨率等上工作。在不同的语言环境中使用不同的 PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或 combinations of them 以及 white space 的布局填充和边框。
-
“每次我尝试向 textArea 添加滚动条时,它都会从屏幕上消失” 我并不感到惊讶,正因为如此..
JTextArea textBoxFailReport = new JTextArea();.建议以列和行为单位的大小(然后将其放在符合该大小的布局中)。像这样的东西..JTextArea textBoxFailReport = new JTextArea(40,10);
标签: java swing jframe jpanel jscrollbar