我要做一个JScrollPane,包含最多7个元素,但是我只要在较小的面板里显示其中两个,其他的通过滚动条实现,请哪位高手指点下,该怎么做,感激不尽。 我要做一个JScrollPane,包含最多7个元素,但是我只要在较小的面板里显示其中两个,其他的通过滚动条实现,请哪位高手指点下,该怎么做,感激不尽。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只要你的那兩個元件的大小加起來 等于 JScrollPane顯示的大小就行了 其他的不就只能滾動條 顯示了~~ 但是JScrollPane太大了,我想设置小点,比如setSize(100,40),但是总不行。 那是你的布局管理器的問題 ~ 你設置JScrollPane的大小 但是還要受到不據管理器的影響,比如你把JScrollPane放到剩余控件很大的一塊區域 即使你JScrollPane設置了大小 它還是會變形~ 3楼正确setLayout(null)然后再setSize()行了 写了个小例子,楼主看看是不是这种效果package demo;import java.awt.Color;import java.awt.Dimension;import java.awt.GridLayout;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;public class DemoForJScrollPane extends JFrame { /** * Launch the application * @param args */ public static void main(String args[]) { try { DemoForJScrollPane frame = new DemoForJScrollPane(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } /** * Create the frame */ public DemoForJScrollPane() { super(); getContentPane().setLayout(null); setBounds(100, 100, 300, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(0, 0, 292, 266); getContentPane().add(scrollPane); final JPanel panel = new JPanel(); panel.setLayout(new GridLayout(7, 1)); scrollPane.setViewportView(panel); final JPanel panel_1 = new JPanel(); panel_1.setBackground(new Color(255, 0, 0)); panel_1.setPreferredSize(new Dimension(300, 100)); panel_1.setLayout(null); panel.add(panel_1); final JLabel label = new JLabel(); label.setText("面板1"); label.setBounds(138, 31, 120, 30); panel_1.add(label); final JPanel panel_2 = new JPanel(); panel_2.setBackground(new Color(255, 255, 128)); panel.add(panel_2); final JLabel label_1 = new JLabel(); label_1.setBackground(new Color(128, 255, 0)); label_1.setText("面板2"); panel_2.add(label_1); final JPanel panel_3 = new JPanel(); panel_3.setBackground(new Color(128, 255, 0)); panel.add(panel_3); final JLabel label_2 = new JLabel(); label_2.setText("面版3"); panel_3.add(label_2); final JPanel panel_4 = new JPanel(); panel_4.setBackground(new Color(0, 0, 255)); panel.add(panel_4); final JLabel label_3 = new JLabel(); label_3.setText("面板4"); panel_4.add(label_3); final JPanel panel_5 = new JPanel(); panel_5.setBackground(new Color(255, 255, 255)); panel.add(panel_5); final JLabel label_4 = new JLabel(); label_4.setText("面板5"); panel_5.add(label_4); final JPanel panel_6 = new JPanel(); panel_6.setBackground(new Color(0, 0, 255)); panel.add(panel_6); final JLabel label_5 = new JLabel(); label_5.setText("面板6"); panel_6.add(label_5); final JPanel panel_7 = new JPanel(); panel_7.setBackground(new Color(0, 255, 255)); panel.add(panel_7); final JLabel label_6 = new JLabel(); label_6.setText("面板7"); panel_7.add(label_6); }} java代码编译不通过,求帮助 那位项目高手给解释一下,java 到底能干什么? 我想用java做串口通讯的程序,没有设备,怎么调试 为什么我这样还无法载入需要的类呢? IP数据包监控程序中出现的问题 朋友们 帮个忙 JAVA 实现对 RTF文件 的读操作,提供ITEXT包!!! 请教高手两个关于时间的算法 socket通信问题!! 请问哪里有SCJD的中文资料,和MOCK 请教FTP 服务器的一个问题 JAVA多维数组问题
setLayout(null)
然后再setSize()行了
import java.awt.Dimension;
import java.awt.GridLayout;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;public class DemoForJScrollPane extends JFrame { /**
* Launch the application
* @param args
*/
public static void main(String args[]) {
try {
DemoForJScrollPane frame = new DemoForJScrollPane();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
} /**
* Create the frame
*/
public DemoForJScrollPane() {
super();
getContentPane().setLayout(null);
setBounds(100, 100, 300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(0, 0, 292, 266);
getContentPane().add(scrollPane); final JPanel panel = new JPanel();
panel.setLayout(new GridLayout(7, 1));
scrollPane.setViewportView(panel); final JPanel panel_1 = new JPanel();
panel_1.setBackground(new Color(255, 0, 0));
panel_1.setPreferredSize(new Dimension(300, 100));
panel_1.setLayout(null);
panel.add(panel_1); final JLabel label = new JLabel();
label.setText("面板1");
label.setBounds(138, 31, 120, 30);
panel_1.add(label);
final JPanel panel_2 = new JPanel();
panel_2.setBackground(new Color(255, 255, 128));
panel.add(panel_2); final JLabel label_1 = new JLabel();
label_1.setBackground(new Color(128, 255, 0));
label_1.setText("面板2");
panel_2.add(label_1); final JPanel panel_3 = new JPanel();
panel_3.setBackground(new Color(128, 255, 0));
panel.add(panel_3); final JLabel label_2 = new JLabel();
label_2.setText("面版3");
panel_3.add(label_2); final JPanel panel_4 = new JPanel();
panel_4.setBackground(new Color(0, 0, 255));
panel.add(panel_4); final JLabel label_3 = new JLabel();
label_3.setText("面板4");
panel_4.add(label_3); final JPanel panel_5 = new JPanel();
panel_5.setBackground(new Color(255, 255, 255));
panel.add(panel_5); final JLabel label_4 = new JLabel();
label_4.setText("面板5");
panel_5.add(label_4); final JPanel panel_6 = new JPanel();
panel_6.setBackground(new Color(0, 0, 255));
panel.add(panel_6); final JLabel label_5 = new JLabel();
label_5.setText("面板6");
panel_6.add(label_5); final JPanel panel_7 = new JPanel();
panel_7.setBackground(new Color(0, 255, 255));
panel.add(panel_7); final JLabel label_6 = new JLabel();
label_6.setText("面板7");
panel_7.add(label_6); }}