ИСХОДНАЯ ИНФОРМАЦИЯ:- Мне нужно создать графический интерфейс Swing с помощью Netbeans GUI Builder. Первая подзадача — вывести изображение на весь фон.
Я следовал руководству, чтобы сделать это. В основном я создал JFrame, установил для его макета значение GridBagLayout, а затем добавил к нему прозрачный (сняв флажок с непрозрачного свойства) JPanel. (Вопрос 1)
После этого я добавил JLabel в JFrame, удалил его текст и добавил к нему изображение. (Вопрос 2)
ВОПРОСЫ:-
Во-первых, когда я добавляю JPanel, она не показывает дескрипторы изменения размера. Я немного погуглил и нашел это руководство, в котором видно, что при создании JPanel автоматически отображаются маркеры изменения размера, которые можно перетаскивать для изменения размера.
Но у меня нет (скриншот ниже) Итак, есть ли какое-то свойство или что-то, что можно настроить, чтобы я мог изменить его размер? Потому что моё намерение заключается в использовании этих прозрачных панелей для размещения компонентов (кнопок и т. д.) на заднем плане, поэтому они должны выходить за пределы всего экрана/окна/родителя JFrame.
Во-вторых, поскольку изображение, которое я использую, имеет размер примерно 1024x768, поэтому оно кажется намного больше, чем его родительские компоненты.
Поскольку я нуб, и я не уверен, нужно ли регулировать размер фонового изображения, каким-то образом измеряя ширину и высоту пикселя родителя, а затем преобразовывая фактический размер изображения в этот размер в какой-то программе, такой как Adobe Photoshop. Но я уверен, что должен быть более практичный способ сделать это.
Я хочу, чтобы размер изображения автоматически изменялся в соответствии с размером родительского элемента, когда он первоначально размещается на родительском объекте JLabel. Как я могу это сделать? Подскажите, пожалуйста, самый простой способ, желательно в GUI Builder.
Я также хочу убедиться, что размер изображения, размер его родительского JLabel, размер JPanel будут подстраиваться под фрейм, когда я изменяю размер окна позже при использовании этого приложения, или если есть способ отключить изменение размера окна. окно полностью.
EDIT1 @Braj
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.dev_nna.dbp;
public class JFrameParent extends javax.swing.JFrame {
/**
* Creates new form JFrameParent
*/
public JFrameParent() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new java.awt.GridBagLayout());
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
getContentPane().add(jPanel1, new java.awt.GridBagConstraints());
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/dev_nna/dbp/scheduler/resources/Abstract-white-and-blue-backgrounds.jpg"))); // NOI18N
jLabel1.setText("jLabel1");
getContentPane().add(jLabel1, new java.awt.GridBagConstraints());
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(JFrameParent.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(JFrameParent.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(JFrameParent.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(JFrameParent.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new JFrameParent().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
// End of variables declaration
}
JLabel
- person Braj   schedule 27.04.2014I want the image to automatically resize itself according to the size of the parent when it is initially placed on on its parent JLabel.
зачем ты тратишь время?? Вы уже получили ответ вчера, когда задали вопрос (stackoverflow.com/a/23312532/131872). Почему я должен вообще отвечать на ваши вопросы, если вы даже не тратите время на то, чтобы прочитать ответ??? - person camickr   schedule 27.04.2014