wczzd 2024-08-01 20:18 采纳率: 100%
浏览 14
已结题

Java swing JTextArea

最近用Java swing做GUI的时候,JTextArea这个控件的问题很大!
首先就是setBounds对这个控件竟然没用,禁用Layout后依然没用,不可能是没加载的问题。接着就是这个滚动条,我是这么写的

public void main(String[] args) {
        JFrame mainWindow = new JFrame("gui");
        mainWindow.setTitle("KaramCode");
        mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainWindow.setSize(2000, 1236);
        mainWindow.setVisible(true);
        //容器
        JPanel mainPanel = new JPanel();
        mainWindow.setContentPane(mainPanel);
        mainPanel.setLayout(null);
        mainPanel.setBackground(Color.darkGray);
        //用于文本域的容器
        JScrollPane sPane = new JScrollPane();
        sPane.setBounds(1100, 0, 1500, 1236);
        mainPanel.add(sPane);
        //输入框
        JTextArea input = new JTextArea("//Hello World!");
        input.setBounds(1100, 0, 1500, 1236);
        sPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        sPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
        sPane.setViewportView(input);
}

有没有程序猿/小孩哥知道怎么解决啊?

  • 写回答

1条回答 默认 最新

  • ceclar123 2024-08-03 20:44
    关注

    1、尽量采用布局来处理,不要写死坐标,否则缩放,拖动,最大化,最小化有问题
    2、mainWindow.setVisible(true);这一行代码放到最后,如果放到中间位置,之后的一些设置不起作用

           // 创建 JFrame
            JFrame mainWindow = new JFrame("gui");
            mainWindow.setTitle("KaramCode");
            mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            // 设置窗口的大小
            mainWindow.setSize(400, 300);
            // 获取屏幕的尺寸
            int screenWidth = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode().getWidth();
            int screenHeight = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode().getHeight();
    
            // 计算窗口的 x 和 y 坐标,使其屏幕居中
            int x = (screenWidth / 2) - (mainWindow.getWidth() / 2);
            int y = (screenHeight / 2) - (mainWindow.getHeight() / 2);
    
            // 设置窗口的位置
            mainWindow.setLocation(x, y);
            // 设置 JFrame 的布局
            mainWindow.setLayout(new BorderLayout());
    
            // 创建 JTextArea
            JTextArea input = new JTextArea("//Hello World!");
    
            // 创建 JScrollPane,此构造方案滚动条会自动出现
            JScrollPane scrollPane = new JScrollPane(input);
    
            // 将 JScrollPane 添加到 JFrame 中
            mainWindow.add(scrollPane,BorderLayout.CENTER);
    
            // 设置 JFrame 可见
            mainWindow.setVisible(true);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月12日
  • 已采纳回答 8月4日
  • 创建了问题 8月1日

悬赏问题

  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响