Horisontal滚动条不适用于JScrollPane

时间:2018-05-09 16:57:04

标签: java swing jscrollpane miglayout

这是我使用Miglayout的应用程序的插件:

enter image description here

这是MigLayout初始化代码,布局占用主面板的100%空间:

while (!string.equals(comp)) {
    ...
}

问题不在于左侧列表的水平滚动条,即带有BoxLayout的JPanel,即使我为它调用了setVerticalScrollBarPolicy。使用此循环动态填充JPanel:

import math
global guess

pasw = str(input('Input password: '))
chars = 'abcdefghijklmnopqrstuvwxyz' #only limeted myself to lowercase for simplllicity.
base = len(chars)+1

def cracker(pasw):
    guess = ''
    tests = 1
    c = 0
    m = 0

    while True:
        y = tests
        while True:
            c = y % base
            m = math.floor((y - c) / base)
            y = m
            guess = chars[(c - 1)] + guess
            print(guess)
            if m == 0:
                break

        if guess == pasw:
            print('Got "{}" after {} tests'.format(guess, str(tests)))
            break
        else:
            tests += 1
            guess = ''


cracker(pasw)
input()

我必须添加最后一行才能获得垂直滚动条。如果我不添加它,那么它也会丢失,即使它在底部有额外的空白空间的副作用。如何让滚动条正常工作?

1 个答案:

答案 0 :(得分:0)

jep.setPreferredSize(new Dimension(200,20));

不要硬编码首选尺寸。

每个组件dynamcially将根据组件的属性(文本,字体等)确定自己的首选大小。

然后,布局管理器可以dynamically根据每个组件的首选大小确定面板的大小,并在需要时显示滚动条。

在完成将所有组件添加到面板后,您需要使用:

panel.revalidate();

调用布局管理器,以便计算面板的新大小。