【问题标题】:How to add jScrollPane to Null Layout of jPanel [closed]如何将 jScrollPane 添加到 jPanel 的空布局 [关闭]
【发布时间】:2012-12-11 12:43:29
【问题描述】:

如何在netbeans 中添加jScrollPaneNull Layout of jPanel?我正在使用Null Layout for jPanel,我搜索了不同的来源,但我仍然无法将 jScrollPane 添加到 jPanel 的 Null 布局。

如果可能,请提供源代码

感谢所有回复评论者,我接受建议而不是谈论建议。

当有人就他们需要的任何东西提出问题时,我似乎在这里,但这里有些人不鼓励寻求帮助而不是帮助的人......

我使用空布局的基本需求是,我正在使用带有 jlabel 的空布局将背景图像添加到 jpanel,因为我正在使用 netbeans,我是 java 的初学者......

我要求所有版主不要删除我的编辑字...人们可能会理解我的感受,因为我是 java 和 netbeans 学习者。

【问题讨论】:

  • 什么是空布局?你的意思是默认的吗?
  • 感谢您的回复....意味着像一个“jPanel2.setLayout(null);”它调用 jPanel 的 Null 布局,当我添加 jScrollPane 时它​​无法正常工作,因为 PreferredSize 是转到零……
  • 不要使用空布局。使用适当的 LayoutManager
  • -1 坚持不使用 layoutManager
  • @AyazAli 有关背景图片,请查看this answer。然后使用适当的 LayoutManager,你会做得很好。老实说,不使用 LayoutManager 只是在寻找问题,并且不得不维护繁琐的代码,让你的生活变得悲惨。

标签: java swing jpanel layout-manager null-layout-manager


【解决方案1】:

不要为您的JPanel 设置null 布局,而是设置BorderLayout,一切都应该像这个例子一样正常工作:

import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.JTextArea;
import java.awt.BorderLayout;
import javax.swing.JScrollPane;
import javax.swing.JPanel;

public class App extends JFrame{
    JPanel panel = new JPanel();
    JTextArea textarea = new JTextArea(10,50);


    public App(){
        panel.setLayout(new BorderLayout());
        panel.add(new JScrollPane(textarea),BorderLayout.CENTER);
        add(panel);
    }

    public static void main( String[] args ){

        SwingUtilities.invokeLater(new Runnable(){
            public void run(){
                App a = new App();
                a.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                a.pack();
                //a.setSize(1900,1200);
                a.setVisible(true);
            }
        });    
    }
}

所以,只需添加您的表单而不是 JTextArea

【讨论】:

  • +1 但下次尽量避免不必要地扩展JFrame。在这里你不需要扩展,所以干脆不要这样做。干杯
  • @AyazAli 欢迎您。 :)
【解决方案2】:
JScrollPane pane = new JScrollPane();
JPanel panel = new JPanel();
panel.add(pane);

【讨论】:

  • 感谢您的回复,但它不适用于 jPanel 的 Null 布局......意味着像一个“jPanel2.setLayout(null);”它调用 jPanel 的 Null 布局,当我添加 jScrollPane 时它不起作用,因为 PreferredSize 归零...
  • 你应该添加这个:panel.setBounds(new Rectangle(160, 10, 110, 40));
  • @wxyz 不 - 你应该永远没有 layoutManager,调整大小/定位组件是它的专属职责
猜你喜欢
  • 1970-01-01
  • 2020-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多