Я знаю, что размер пикселя JFrame включает строку заголовка и стороны, поэтому я хочу создать панель вместо этого и использовать метод pack() для установки на панель внутри JFrame. Проблема в том, что всякий раз, когда я запускаю код, окно почему-то появляется в размере 0, несмотря на то, что JPanel является другим размером. Вот мой код.Настройка размера пикселя JPanel, а затем его установка внутри JFrame
/*This part of the code is from one class.*/
public static void main(String[] args) throws InterruptedException {
P.g.setSize(300, 300);
frame.getContentPane().add(P.g);
frame.setLocationRelativeTo(null);
frame.setBackground(Color.WHITE);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/*This part of the code is from another class.*/
public class P extends JPanel {
static P g = new P();
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(100, 0, 100, 300);
g.drawLine(200, 0, 200, 300);
g.drawLine(300, 0, 300, 300);
}
}
Можете ли вы показать мне, где именно поставить метод GetPreferredSize()? Пожалуйста? – Ski
Я отредактировал сообщение. getPreferredSize теперь реализуется отдельно от значений – Paul
Большое вам спасибо! Таким образом, метод переопределения встроен и в основном задает размер панели справа? Поскольку мы не можем установить размер панели, когда мы ее расширяем? – Ski