我想改變 a 的大小JPanel。我試過setSize(在這個論壇中提出的解決方案),但它對我不起作用。
JFrame 代碼:
JFrame f =new JFrame();
f.setTitle("test");
f.setSize(300,400);
f.setLocationRelativeTo(null);
f.setResizable(false);
f.setLayout(null);
JPanel 代碼:
JPanel display= new JPanel();
display.setLayout(null);
JTextField txt = new JTextField(30);
display.add(txt,BorderLayout.NORTH);
display.setBackground(Color.gray);
display.setSize(30,17);
uj5u.com熱心網友回復:
這是一個完整且可編譯的示例,用于執行您正在嘗試執行的操作。
import javax.swing.*;
import java.awt.*;
public class ResizableJPanel{
public static void main(String[] args){
JFrame frame = new JFrame(" with a panel");
Container content = frame.getContentPane();
content.setLayout(null);
JPanel panel = new JPanel();
panel.setOpaque( true);
panel.setBackground( Color.BLACK );
panel.setBounds( 200, 200, 400, 400);
content.add(panel);
frame.setSize(800, 800);
frame.setVisible(true);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
您可以更改 setBounds 的值以移動或調整面板大小。
您遺漏了一些重要的部分:如何將面板添加到 JFrame?你目前的方法有什么問題?
如果您的文本欄位沒有顯示,那是因為您的 JPanel 非常小,并且它的布局為空。
panel.setLayout(null);
JTextField field = new JTextField(30);
panel.add(field);
field.setBounds( 50, 110, 30, 17 );
這將添加該欄位并為其指定大小。在這里使用空布局是不好的,因為布局管理器會處理 TextField 的大小。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/401899.html
