- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我这样做的全部目的是让东西看起来像这样:
我希望我的技能列表像卡住 Excel 电子表格的第一行一样滚动。
这是我顶行的代码。
//#### Skills frame start ####
skillsFrame = new JInternalFrame("Skills", true, true, false, false);
skillsFrame.setLayout(new BorderLayout());
skillsFrame.setLocation(Integer.parseInt(configFile.getProperty("SKILLS_FRAME_COORDINATE_X")),
Integer.parseInt(configFile.getProperty("SKILLS_FRAME_COORDINATE_Y")));
skillsFrame.setSize(Integer.parseInt(configFile.getProperty("SKILLS_FRAME_SIZE_X")),
Integer.parseInt(configFile.getProperty("SKILLS_FRAME_SIZE_Y")));
skillsPanelHeader = new JPanel();
skillsPanelContent = new JPanel();
//skillsPanelScrollPane = new JScrollPane();
//skillsPanelScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//skillsPanelScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
GridBagLayout gridBagLayout = new GridBagLayout();
gridBagLayout.columnWidths = new int[]{0, 110, 200, 45, 17};
gridBagLayout.rowHeights = new int[]{0, 0, 0, 0, 0};
gridBagLayout.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0};
gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
skillsPanelHeader.setLayout(gridBagLayout);
skillsPanelContent.setLayout(gridBagLayout);
JLabel lblImage = new JLabel("Icon");
lblImage.setFont(new Font("Tahoma", Font.BOLD, 14));
GridBagConstraints gbc_lblImage = new GridBagConstraints();
gbc_lblImage.insets = new Insets(0, 0, 5, 5);
gbc_lblImage.gridx = 0;
gbc_lblImage.gridy = 0;
skillsPanelHeader.add(lblImage, gbc_lblImage);
JLabel lblSkills = new JLabel("Skills");
lblSkills.setFont(new Font("Tahoma", Font.BOLD, 14));
GridBagConstraints gbc_lblSkills = new GridBagConstraints();
gbc_lblSkills.gridx = 1;
gbc_lblSkills.insets = new Insets(0, 0, 5, 5);
gbc_lblSkills.gridy = 0;
skillsPanelHeader.add(lblSkills, gbc_lblSkills);
JLabel lblExp = new JLabel("Exp");
lblExp.setFont(new Font("Tahoma", Font.BOLD, 14));
GridBagConstraints gbc_lblExp = new GridBagConstraints();
gbc_lblExp.insets = new Insets(0, 0, 5, 5);
gbc_lblExp.gridx = 2;
gbc_lblExp.gridy = 0;
skillsPanelHeader.add(lblExp, gbc_lblExp);
JLabel lblLevel = new JLabel("Level");
lblLevel.setFont(new Font("Tahoma", Font.BOLD, 14));
GridBagConstraints gbc_lblLevel = new GridBagConstraints();
gbc_lblLevel.insets = new Insets(0, 0, 5, 0);
gbc_lblLevel.gridx = 3;
gbc_lblLevel.gridy = 0;
skillsPanelHeader.add(lblLevel, gbc_lblLevel);
JSeparator separator = new JSeparator();
GridBagConstraints gbc_separator = new GridBagConstraints();
gbc_separator.fill = GridBagConstraints.HORIZONTAL;
gbc_separator.gridwidth = 4;
gbc_separator.insets = new Insets(0, 0, 5, 0);
gbc_separator.gridx = 0;
gbc_separator.gridy = 1;
skillsPanelHeader.add(separator, gbc_separator);
skillsFrame.setMinimumSize(new Dimension(425,500));
skillsFrame.setVisible(false);
skillsFrame.getContentPane().add(skillsPanelHeader, BorderLayout.NORTH);
panel.add(skillsFrame);
//#### Skills frame end ####
这是解析(commandString - 来自服务器/数据库的技能回复)的代码
String SkillsList[] = commandString.split("\\|");
//TODO:: make the painting not keep getting darker and darker
for (int i = 0; i < SkillsList.length; i = i+3){
JLabel label = new JLabel("");
label.setIcon(new ImageIcon(SkillsList[i]));
GridBagConstraints gbc_label = new GridBagConstraints();
gbc_label.insets = new Insets(0, 0, 5, 5);
gbc_label.gridx = 0;
gbc_label.gridy = i+2;
skillsPanelContent.add(label, gbc_label);
JLabel lblNewLabel = new JLabel(SkillsList[i+1]);
GridBagConstraints gbc_lblNewLabel = new GridBagConstraints();
gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5);
gbc_lblNewLabel.gridx = 1;
gbc_lblNewLabel.gridy = i+2;
skillsPanelContent.add(lblNewLabel, gbc_lblNewLabel);
JProgressBar progressBar_1 = new JProgressBar();
progressBar_1.setStringPainted(true);
progressBar_1.setString(SkillsList[i+2] + "/");
GridBagConstraints gbc_progressBar_1 = new GridBagConstraints();
gbc_progressBar_1.fill = GridBagConstraints.HORIZONTAL;
gbc_progressBar_1.insets = new Insets(0, 0, 5, 5);
gbc_progressBar_1.gridx = 2;
gbc_progressBar_1.gridy = i+2;
skillsPanelContent.add(progressBar_1, gbc_progressBar_1);
JLabel label_1 = new JLabel("1");
GridBagConstraints gbc_label_1 = new GridBagConstraints();
gbc_label_1.insets = new Insets(0, 0, 5, 0);
gbc_label_1.gridx = 3;
gbc_label_1.gridy = i+2;
skillsPanelContent.add(label_1, gbc_label_1);
if (i == SkillsList.length-3){
JScrollBar scrollbar = new JScrollBar();
GridBagConstraints gbc_scrollbar = new GridBagConstraints();
gbc_scrollbar.insets = new Insets(0, 0, 5, 0);
gbc_scrollbar.gridx = 4;
gbc_scrollbar.gridy = 2;
gbc_scrollbar.fill = GridBagConstraints.BOTH;
gbc_scrollbar.gridheight = i;
skillsPanelContent.add(scrollbar, gbc_scrollbar);
}
}
skillsFrame.getContentPane().add(skillsPanelContent, BorderLayout.CENTER);
System.out.println(commandString);
如您所见,它完美地添加了所有内容,但滚动条没有连接到任何东西。我对此束手无策。我尝试通过向其添加 skillsPanelContent 来使用 JScrollPane,但无论我做什么,它都不会显示。
如有任何建议或帮助,我们将不胜感激。我希望我在必要时尽可能简短(代码)。如果我可以包含任何其他内容以提供更多帮助,请告诉我。谢谢。
最佳答案
为什么不在您的 contentPanel 周围添加一个 JScrollPane
:
skillsFrame.getContentPane().add(new JScrollPane(skillsPanelContent), BorderLayout.CENTER);
当然还有删除你的滚动条。您可能还需要通过将 horizontalScrollBarPolicy 设置为 ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER
值来禁用它:setHorizontalScrollBarPolicy(int policy)
关于java - 使用 GridBagLayout 将 JScrollBar 添加到 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9934340/
大家晚上好; 我java swing我正在尝试有一个如图所示的菜单 (图中左侧) 但是,看起来比我想象的要困难。我有边框布局,我把盒子布局放在中间,jscroll栏放在右边。在框布局内,我但带有图标的
我添加了以下代码,用于在文本字段中显示滚动条。但它仍然没有出现。有人可以帮我解决这个问题吗?我无法弄清楚错误发生在哪里: public JTextArea talkArea = new JTextAr
我想创建一个水平滚动条,其最大值设置为2(它应该只允许选择0、1或2作为值),但如果该值小于11,旋钮是不可见的。 scrlLineDist = new JScrollBar(); s
我正在尝试将垂直的 JScrollBar 放在 JPanel 的顶部。我可以很容易地添加滚动条,但是当我运行程序时,我的滚动条没有任何效果。我可以上下拖动它,但 JPanel 的内容不会移动。我已经阅
当我将JScrollBar的visibleAmount设置为等于最大值时,JScrollbar的 slider 消失了。我不知道为什么?我想让滚动条像这样: [] (拇指的大小充满了 JScrollb
我想自定义滚动条对象的输出。下面的代码适用于 JTextPane,那么 JScrollBar 的等效代码是什么? private JTextPane textPane; StyledD
如何根据滚轮鼠标旋转量以编程方式移动 JScrollBar? 最佳答案 您可以使用 JScrollBar 的 setValue 方法来设置滚动条的位置。 或者,您可以使用 JScrollBar 后面的
我想完全改变一个 scollbar 的外观,但是重写 JScrollBar 和 paintComponent 方法不起作用,track 和 thumb 被绘制了但是左右箭头保持不变。 我还在 JScr
所以我使用 Java Swing 为我的应用程序构建 UI,并使用自定义图像来替换丑陋的 Java 图像,自定义图像具有样式并且很容易集成到 Java Swing 中。 现在我的问题是我需要在应用程序
背景 希望在 JScrollPane 的角落添加一个滚动锁定按钮不遮挡视口(viewport)内容。下图显示了一个 JScrollPane包裹在 SwingNode在 JavaFX 应用程序中: 右下
(经过描述,代码中的事情就清楚了) 我有一个程序,其中包含 JScrollBar、JTextArea、JTextFields、JButtons 和其他一些东西。 (我只添加了SSCCE代码) 好的,我
我正疯狂地尝试制作一个更大的 JScrollBar。我想做一个更大的结和轨道...以及 JScrollBar 本身。 我在这里找到了一些代码来扩展我自己的 BasicScrollBarUI 来更改颜色
如果滚动 Pane 的 View 组件足够大,则滚动条拇指很小,因此无法在 Windows L&F 上正确绘制。 这只是一个审美问题;滚动条功能正常,其他 L&F 似乎一切都很好。 有办法解决吗?也许
我希望能够使用 JScrollBar 更改形状的位置和/或大小。我对 Swing 组件还很陌生,但已经弄清楚如何更改字符串的位置,但我不知道如何使用从 PaintComponent 绘制的形状来实现它
我的框架上有一个 JScrollBar,而不是 ScrollFrame 中,并且滚动条旋钮/ slider 非常薄。我尝试更改滚动条的属性,并尝试制作自定义 JScrollBar 组件,但我无法找到更
我有一个 jScrollbar,当我滚动它时(它的值从 0 到 100),我想在文本字段中显示该值。这是如何从 jScrollBar 获取值 AdjustmentListener adjListene
我有一系列列标签,它们独立于下面矩阵中显示的数据滚动。除了悬停时,我可以使整个滚动条透明。标签正对着数据,我喜欢这样,但是,在悬停时,除非我移动垂直滚动条(我宁愿不这样做),否则滚动条会遮住所有标签的
如何改变 JScroll Bar 中箭头的高度?我能够改变宽度滚动条,但箭头的高度仍然很小。感谢您的帮助。 最佳答案 绘画是由几个 BasicArrowButtons 完成的,它们的绘画方法中有这个:
在我的应用程序中,我有两个 Swing 组件在彼此之上,看起来像下图。问题是橙色组件需要一个垂直滚动条,但我希望组件的右边缘保持完全对齐(并且宽度可以随着用户使应用变宽或变窄而变化)。如果我使用网格布
因此有一个 JScrollBar 的构造函数,如下所示: public JScrollBar(int orientation, int value, int extent, int min, int
我是一名优秀的程序员,十分优秀!