Итак, моя программа создает графический интерфейс MigLayout и имеет кучу JLabels, которым при создании даются изображения. Здесь вы можете увидеть, каков конечный результат прямо сейчас:
Изображения слишком большие и превышают размер JPanel, в котором они содержатся. Он просто создает его таким же, как исходное изображение, а затем отображает это, однако, это, очевидно, проблема. Есть ли способ исправить размер, чтобы он поместил каждый компонент в графический интерфейс?
Для начала я хочу убедиться, что синяя часть не смещается таким образом, я хочу, чтобы она сохраняла размер, который был установлен (половина высоты). Я также хочу, чтобы изображения занимали максимально возможный размер с сохранением соотношения сторон исходного изображения.
Я пытался установить размер JLabel и предпочтительный размер, я пробовал несколько попыток с MigLayout, давая ему параметры, когда я говорю ему добавить JLabel, ни один из них не работал для меня. Я развлекаюсь идеей расширить JLabel и написать что-нибудь, чтобы это исправить, но не совсем уверен, как это сделать. Я знаю, что могу перезаписать краску, но не уверен, что мне придется делать на самом деле.
Мой JPanel настроен следующим образом:
JPanel jpCards = new JPanel(new MigLayout("insets 0, gapx 0, gapy 0, wrap 7", "grow"));
Мои карты добавляются без дополнительных параметров и создаются просто путем предоставления картинок того размера, в котором они отображались.
Просто чтобы уточнить, мне нужно изменить фактический размер JLabel, а не только то, что содержится внутри, потому что позже у них будут слушатели мыши. Если изменилось только изображение, у меня будут проблемы с прослушивателем мыши, обнаруживающим себя внутри JLabel, что он не выглядит так, как должен