Java:文本未在JFrame对话框中换行
我使用JFrame来显示一个消息框,其中包含一些文本和两个按钮。如何根据框的大小自动换行文本 以下是我当前的代码:Java:文本未在JFrame对话框中换行,java,swing,jframe,Java,Swing,Jframe,我使用JFrame来显示一个消息框,其中包含一些文本和两个按钮。如何根据框的大小自动换行文本 以下是我当前的代码: dialogFrame = new JFrame(); JButton newButton = new JButton("New"); newButton.addActionListener(new newUploadAction()); JButton resumeButton = new JButton("Re
dialogFrame = new JFrame();
JButton newButton = new JButton("New");
newButton.addActionListener(new newUploadAction());
JButton resumeButton = new JButton("Resume");
resumeButton.addActionListener(new resumeUploadAction());
//dialogFrame.setUndecorated(true);
JPanel addPanel = new JPanel();
JPanel addPanel2 = new JPanel();
addPanel.add(newButton);
addPanel.add(resumeButton);
String text = "<html><p>A previous control file exists for this file. ";
text += "Would you like to initiate a new transfer or resume the previous one?</p></html>";
JLabel testLabel = new JLabel(text);
//testLabel.setPreferredSize(new Dimension(1, 1));
addPanel2.add(testLabel);
Container content = dialogFrame.getContentPane();
//content.setBackground(Color.white);
content.setLayout(new BoxLayout(content, BoxLayout.PAGE_AXIS));
content.add(addPanel2);
content.add(addPanel);
dialogFrame.setSize(200,200);
dialogFrame.setVisible(true);
dialogFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
将导致我想要的包装行为,但这只会导致文本根本不显示。您可以将文本放置在
JTextArea
中,并在JTextArea
上调用setLineWrap(true)
和setWrapStyleWord(true)
。如果您想让它看起来更像JLabel,那么只需根据您的喜好更改JTextArea
的颜色设置即可
编辑1
另一件可能工作的事情:考虑持有“<代码> jPoCTs/COD> >使用<代码>边界布局< /代码>:
JPanel addPanel2 = new JPanel(new BorderLayout()); //!! added BorderLayout
因此,添加的
JLabel
将填充addPanel2
您可以将文本放置在JTextArea
中,并在JTextArea
上调用setLineWrap(true)
和setWrapStyleWord(true)
。如果您想让它看起来更像JLabel,那么只需根据您的喜好更改JTextArea
的颜色设置即可
编辑1
另一件可能工作的事情:考虑持有“<代码> jPoCTs/COD> >使用<代码>边界布局< /代码>:
JPanel addPanel2 = new JPanel(new BorderLayout()); //!! added BorderLayout
因此添加的
JLabel
将填充addPanel2
可能重复-可能重复-+1,用于提及JTextArea
解决方案和酷名,但是另一种选择是嵌入HTML
@mre:HTML
的问题是您需要指定换行符的位置,而我认为OP希望换行符的位置取决于GUI的大小。@HFOE:“HTML的问题是您需要指定换行符的位置..”一点CSS都没有。例如,
。中的输出限制为600px宽度。您完全正确,但我想您可以使用提及的@Andrew Thompson周围的工作。+1用于提及JTextArea
解决方案和酷名,但是另一种选择是嵌入HTML
@mre:HTML
的问题是您需要指定换行符的位置,而我认为OP希望换行符的位置取决于GUI的大小。@HFOE:“HTML的问题是您需要指定换行符的位置..”一点CSS都没有。例如,
。中的输出限制为600px宽度。您完全正确,但我想您可以使用@Andrew Thompson提到的工作。