我有以下代码:
package example;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class ScrollingExample extends JFrame
{
private static final long serialVersionUID = 1L;
public static void main(String[] args)
{
ScrollingExample scrollingExample = new ScrollingExample();
scrollingExample.go();
}
private void go()
{
JPanel topPanel = new JPanel();
topPanel.add(new JLabel("boo"));
JPanel mainPanel = new JPanel();
JPanel mainInnerPanel = makeMainInnerPanel();
JScrollPane scrollPane = new JScrollPane(mainInnerPanel);
mainPanel.add(scrollPane);
add(topPanel, BorderLayout.NORTH);
add(mainPanel, BorderLayout.CENTER);
pack();
setVisible(true);
}
private JPanel makeMainInnerPanel()
{
JPanel row1 = makeHorizontalPanel("one", "two", "three", "four", "five");
JPanel row2 = makeHorizontalPanel("six", "seven", "eight");
JPanel row3 = makeHorizontalPanel("nine", "ten", "eleven");
JPanel mainInnerPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
mainInnerPanel.add(row1);
mainInnerPanel.add(row2);
mainInnerPanel.add(row3);
return mainInnerPanel;
}
private JPanel makeHorizontalPanel(String ... labelValues)
{
JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
for (String s : labelValues)
{
JLabel label = new JLabel(s);
panel.add(label);
}
return panel;
}
}
当我显示它时,它会自动调整大小以显示所有标签。调整窗口大小时,无法显示滚动条。
当我开始工作时,我想制作一个包含JTabbedPane和几个按钮的面板,并且我希望如果用户调整窗口大小以使它的某些部分看不到,那将具有滚动条。如果对这个问题的答案需要其他或不同的方式来做到这一点,则不胜感激。
参考方案
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class ScrollingExample extends JFrame
{
private static final long serialVersionUID = 1L;
public static void main(String[] args)
{
ScrollingExample scrollingExample = new ScrollingExample();
scrollingExample.go();
}
private void go()
{
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel topPanel = new JPanel();
topPanel.add(new JLabel("boo"));
JPanel mainPanel = new JPanel(new BorderLayout());
JPanel mainInnerPanel = makeMainInnerPanel();
JScrollPane scrollPane = new JScrollPane(mainInnerPanel);
mainPanel.add(scrollPane);
add(topPanel, BorderLayout.NORTH);
add(mainPanel, BorderLayout.CENTER);
pack();
setVisible(true);
}
private JPanel makeMainInnerPanel()
{
JPanel row1 = makeHorizontalPanel("one", "two", "three", "four", "five");
JPanel row2 = makeHorizontalPanel("six", "seven", "eight");
JPanel row3 = makeHorizontalPanel("nine", "ten", "eleven");
JPanel mainInnerPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
mainInnerPanel.add(row1);
mainInnerPanel.add(row2);
mainInnerPanel.add(row3);
return mainInnerPanel;
}
private JPanel makeHorizontalPanel(String ... labelValues)
{
JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
for (String s : labelValues)
{
JLabel label = new JLabel(s);
panel.add(label);
}
return panel;
}
}
Java-搜索字符串数组中的字符串 - java在Java中,我们是否有任何方法可以发现特定字符串是字符串数组的一部分。我可以避免出现一个循环。例如String [] array = {"AA","BB","CC" }; string x = "BB" 我想要一个if (some condition to tell wheth…
Java RegEx中的单词边界\ b - java我在使用\b作为Java Regex中的单词定界符时遇到困难。对于text = "/* sql statement */ INSERT INTO someTable"; Pattern.compile("(?i)\binsert\b");找不到匹配项Pattern insPtrn = Pattern.compile(&…
Java Double与BigDecimal - java我正在查看一些使用双精度变量来存储(360-359.9998779296875)结果为0.0001220703125的代码。 double变量将其存储为-1.220703125E-4。当我使用BigDecimal时,其存储为0.0001220703125。为什么将它双重存储为-1.220703125E-4? 参考方案 我不会在这里提及精度问题,而只会提及数字…
当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…
字符串内存分配 - java哪一个更好System.out.println("hello world"); 要么String s="hello world"; System.out.println(s); 参考方案 对于此简单示例,在内存分配方面没有区别。