std::malloc()
这里我要为package new1;
import javax.swing.*;
public class New1 {
JFrame f = new JFrame("demo");
JPanel p = new JPanel();
JLabel l = new JLabel("one");
JLabel la = new JLabel("two");
JTextField t = new JTextField();
JTextField ta = new JTextField();
JScrollPane sc = new JScrollPane(p); // scrollbar with panel as constructor.
New1() {
f.add(p); // adding panel o the frame
p.setVisible(true);
p.setLayout(null);
p.setSize(1400, 900);
l.setBounds(10, 50, 100, 20); // setting dimension of labels
la.setBounds(10, 100, 100, 20);
t.setBounds(50, 100, 100, 20); //setting dimension of Textfields
tx.setBounds(50, 50, 100, 20);
p.add(l);
p.add(t);
p.add(la);
p.add(ta);
p.add(tx);
f.setLayout(null);
f.setVisible(true);
f.setSize(1400, 900);
sc.setSize(1350, 700); //setting size of scrollpane
sc.setVisible(true);
p.add(sc); // adding to the panel
}
public static void main(String[] args) {
new New1();
}
}
添加一些标签,并希望这个面板可滚动,所以请帮忙。我正在添加带有面板的滚动窗格作为构造函数,因此我可以将面板设置为可滚动但我没有做到。
答案 0 :(得分:1)
这是在此GUI中实现您似乎需要的方法。
div.inner
这就是它的样子。
Java GUI必须使用不同语言环境中的不同PLF,处理不同的操作系统,屏幕大小,屏幕分辨率等。因此,它们不利于像素完美布局。而是使用布局管理器,或combinations of them以及white space的布局填充和边框。
使用margin-top
布局时,也无法使用滚动窗格。布局管理器为滚动窗格(div.inner
)提供信息。它需要正常工作。
以下是完整的代码:
JPanel p = new JPanel(new GridBagLayout());
ui.add(new JScrollPane(p,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(4,4,4,4);
for (int ii=0; ii<50; ii++) {
gbc.gridy = ii;
gbc.gridx = 0;
p.add(new JLabel("Label " + (ii+1)), gbc);
gbc.gridx = 1;
p.add(new JTextField("Text Field " + (ii+1), 20), gbc);
}
答案 1 :(得分:0)
但我使用任何jpanel m只使用框架,然后添加一些标签和tf
实际上你正在使用JPanel。 JFrame的内容窗格是JPanel,因此实际上是将组件添加到框架中。
阅读Using Top Level Containers上的Swing教程中的部分,该部分解释了Swing中的层次结构。
因此,解决问题的简单方法是:
这是它的工作方式,你不能使框架可滚动。