gpt4 book ai didi

java - 首次尝试简单的 GUI

转载 作者:搜寻专家 更新时间:2023-11-01 02:11:52 25 4
gpt4 key购买 nike

我正在尝试自学如何使用 Java swing 和 Window Builder Pro 制作 GUI,在观看了几个 youtube 视频并阅读了一些教程后,我已经完成了以下任务。

import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import javax.swing.JPanel;
import javax.swing.SpringLayout;
import javax.swing.JTextPane;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class JetstreamFrame extends JFrame {

private static final long serialVersionUID = 1L;
JTabbedPane tabPane;

JPanel buttonOnePanel;
JPanel buttonTwoPanel;
JPanel textDisplayPanel;
JTextPane textPane;
SpringLayout sl_textDisplayPanel;
SpringLayout springLayout;
SpringLayout sl_buttonTwoPanel;
SpringLayout sl_buttonOnePanel;
JButton ButtonTwo;
JButton ButtonOne;

public JetstreamFrame() {
springLayout = new SpringLayout();
getContentPane().setLayout(springLayout);

tabPane = new JTabbedPane(JTabbedPane.TOP);
setupTabPane();

buttonOnePanel = new JPanel();
sl_buttonOnePanel = new SpringLayout();
setupButtonOnePanel();

ButtonOne = new JButton("Click Here!");
setupButtonOne();

buttonTwoPanel = new JPanel();
sl_buttonTwoPanel = new SpringLayout();
setupButtonTwoPanel();

ButtonTwo = new JButton("Click Here!");
setupButtonTwo();

textDisplayPanel = new JPanel();
sl_textDisplayPanel = new SpringLayout();
setupTextDisplayPanel();

textPane = new JTextPane();
setupTextPane();

}

private void setupTabPane()
{
springLayout.putConstraint(SpringLayout.NORTH, tabPane, 0, SpringLayout.NORTH, getContentPane());
springLayout.putConstraint(SpringLayout.WEST, tabPane, 0, SpringLayout.WEST, getContentPane());
springLayout.putConstraint(SpringLayout.SOUTH, tabPane, -198, SpringLayout.SOUTH, getContentPane());
springLayout.putConstraint(SpringLayout.EAST, tabPane, 484, SpringLayout.WEST, getContentPane());
getContentPane().add(tabPane);
}

private void setupButtonOnePanel()
{
tabPane.addTab("Tab One", null, buttonOnePanel, null);
buttonOnePanel.setLayout(sl_buttonOnePanel);
}

private void setupButtonOne()
{
ButtonOne.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0)
{

}
});
sl_buttonOnePanel.putConstraint(SpringLayout.NORTH, ButtonOne, 99, SpringLayout.NORTH, buttonOnePanel);
sl_buttonOnePanel.putConstraint(SpringLayout.WEST, ButtonOne, 187, SpringLayout.WEST, buttonOnePanel);
buttonOnePanel.add(ButtonOne);
}

private void setupButtonTwoPanel()
{
tabPane.addTab("Tab Two", null, buttonTwoPanel, null);
buttonTwoPanel.setLayout(sl_buttonTwoPanel);
}

private void setupButtonTwo()
{
ButtonTwo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0)
{

}
});
sl_buttonTwoPanel.putConstraint(SpringLayout.NORTH, ButtonTwo, 99, SpringLayout.NORTH, buttonTwoPanel);
sl_buttonTwoPanel.putConstraint(SpringLayout.WEST, ButtonTwo, 187, SpringLayout.WEST, buttonTwoPanel);
buttonTwoPanel.add(ButtonTwo);
}

private void setupTextDisplayPanel()
{
springLayout.putConstraint(SpringLayout.NORTH, textDisplayPanel, 6, SpringLayout.SOUTH, tabPane);
springLayout.putConstraint(SpringLayout.WEST, textDisplayPanel, 0, SpringLayout.WEST, getContentPane());
springLayout.putConstraint(SpringLayout.SOUTH, textDisplayPanel, -10, SpringLayout.SOUTH, getContentPane());
springLayout.putConstraint(SpringLayout.EAST, textDisplayPanel, 0, SpringLayout.EAST, getContentPane());
getContentPane().add(textDisplayPanel);
textDisplayPanel.setLayout(sl_textDisplayPanel);
}

private void setupTextPane()
{
sl_textDisplayPanel.putConstraint(SpringLayout.NORTH, textPane, 0, SpringLayout.NORTH, textDisplayPanel);
sl_textDisplayPanel.putConstraint(SpringLayout.WEST, textPane, 0, SpringLayout.WEST, textDisplayPanel);
sl_textDisplayPanel.putConstraint(SpringLayout.SOUTH, textPane, 182, SpringLayout.NORTH, textDisplayPanel);
sl_textDisplayPanel.putConstraint(SpringLayout.EAST, textPane, 0, SpringLayout.EAST, textDisplayPanel);
textDisplayPanel.add(textPane);
}

public void start()
{
this.setSize(500, 500);
this.setVisible(true);
}

}

这段代码的前提是创建一个带有多个选项卡的窗口,以及底部可见的文本区域,无论用户在哪个选项卡中。我已经创建了文本区域、选项卡、按钮,如下所示以及此 GUI 的按钮事件监听器。

不幸的是,我阅读的所有教程都没有向我展示如何将任何内容打印到文本区域。我想要一些类似的东西

System.out.println();

附加到每个按钮,并在文本区域显示该打印,但我不知道如何完成此操作。

我还想知道如果打印的文本超出可见框架,我创建的文本区域是否会在侧面出现滚动条。

最佳答案

textpane.append("TEXTHERE");

将根据事件将任何需要的文本添加到您的文本区域。当我们 append() 文本时,我们还可以将新文本添加到现有段落中。如果您想清除 JTextArea,那么我建议您调用 setText() 方法。

需要 JScrollPane 才能将滚动条添加到 JTextArea,这可以通过以下方式完成:

import javax.swing.JScrollPane;
JScrollPane scrollPane = new JScrollPane(TEXTAREAHERE);

我个人喜欢将滚动 Pane 的属性设置为此,以确保 JScrollBar 只能向上和向下滚动并删除向左和向右滚动:

scrollPane.setHorizo​​nalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_​​NEVER);

关于java - 首次尝试简单的 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17411154/

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