嗨我想设置jlabel的定位从上到下,从左到右,我该怎么做 我尝试了setlocation(),setsize()以及其他方法,但无法实现我想要的输出。
这是我的代码
import java.awt.*;
import javax.swing.*;
import javax.swing.border.Border;
public class TesstDemo1 extends JPanel {
private static final int MAX = 20;
private static final Font sans = new Font("SansSerif", Font.PLAIN, 16);
private static final Border border =
BorderFactory.createMatteBorder(4, 16, 4, 16, Color.black);
private JLabel imageLabel = new JLabel();
public TesstDemo1() {
this.setLayout(new BorderLayout());
ImageIcon image = new ImageIcon("E:\\SOFTWARE\\TrainPIS\\res\\drawable\\a0.png");
JLabel titleLabel = new JLabel(image, SwingConstants.CENTER);
// titleLabel.setText("ImageSlider");
titleLabel.setHorizontalAlignment(JLabel.CENTER);
titleLabel.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 24));
// titleLabel.setBorder(border);
this.add(titleLabel, BorderLayout.NORTH);
imageLabel.setPreferredSize(new Dimension(800, 600));
imageLabel.setBackground(Color.BLUE);
imageLabel.setOpaque(true);
imageLabel.setAlignmentX(LEFT_ALIGNMENT);
JPanel imageConstrain = new JPanel(new FlowLayout(SwingConstants.LEFT));
imageConstrain.add(imageLabel);
imageLabel.setHorizontalAlignment(JLabel.LEFT);
imageLabel.setBorder(border);
this.add(imageLabel, BorderLayout.CENTER);
// this.add(imageConstrain, BorderLayout.CENTER);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TesstDemo1 go = new TesstDemo1();
frame.add(go);
frame.setTitle("ImageSlider");
// frame.setSize(400, 300);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setUndecorated(true);
frame.setVisible(true);
}
});
}
}
提前致谢
答案 0 :(得分:0)
首先,您需要设置布局然后应用位置。一个应该工作的例子是将布局设置为边框布局,然后将JPanel放在相对于中心的位置,如果你不想要框架上的任何其他项目,它应该覆盖孔框架。框架类的示例代码:
this.setLayout(new BorderLayout());
this.add(new JPanel(), BorderLayout.Center);
答案 1 :(得分:-1)
如果没有LayoutManager,则可以执行此操作。您必须将layoutmanager设置为null。使用setBounds设置JComponent的位置并调用repaint。有关更多信息,请查看http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html