我正在尝试将图像放在JLabel
上,但我无法获得宽度或高度。我认为因为jLabel1没有实例化。但我画了设计小组。无论如何我该怎么做?
我创建了JFrame
,JPanel
(jPanel1)和JLabel
(jLabel1)。 (关于netbeans)
这是我的代码:
public class ImageProcessing extends javax.swing.JFrame {
Image image;
public ImageProcessing() {
setSize(640, 480);
setVisible(true);
ImageIcon icon = new ImageIcon("D:\\timeline.jpg");
image = icon.getImage();
Image newImg = image.getScaledInstance(jLabel1.getHeight(), jLabel1.getWidth(), java.awt.Image.SCALE_SMOOTH);
ImageIcon i1 = new ImageIcon(newImg);
jLabel1 = new JLabel(i1);
getContentPane().add(jLabel1);
}
答案 0 :(得分:0)
这应该可以正常工作
import java.awt.Dimension;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class ImageProcessing extends JFrame {
private JLabel jLabel1;
private JPanel jPanel1;
public ImageProcessing() {
initComponents();
ImageIcon icon = new ImageIcon("D:\\timeline.jpg");
Image scaledInstance = icon.getImage().getScaledInstance(jLabel1.getWidth(), jLabel1.getHeight(), Image.SCALE_SMOOTH);
ImageIcon scaledIcon = new ImageIcon(scaledInstance);
jLabel1.setIcon(scaledIcon);
this.setSize(new Dimension(1024, 768));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ImageProcessing();
}
});
}
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 604, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 351, Short.MAX_VALUE)
);
jLabel1.setText("Label");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(139, 139, 139)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 493, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(52, 52, 52)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 226, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(144, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
}