Взирам се в кода си с часове и съм изрязал почти всичко до най-простите части и не знам как да накарам JPanel да се разшири до размера на рамката. В идеалния случай (в крайна сметка) бих искал контейнерен панел със северен и южен панел за съдържание. Северният панел трябва да заеме останалото пространство след поставянето на южния панел.
Засега обаче имам малко червено петънце, което е голямо колкото съдържанието му. Може ли някой да ми даде някаква представа какво правя фундаментално погрешно?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class TestCode extends JFrame {
private DescriptionPanel window = new DescriptionPanel();
public static void main(String[] args){
TestCode frame = new TestCode();
frame.pack();
frame.setTitle("Grape Project");
frame.setLocationRelativeTo(null);
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public TestCode(){
add(window);
}
}
И класът DescriptionPanel:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DescriptionPanel extends JPanel{
private JPanel container = new JPanel();
public DescriptionPanel(ImageIcon pic, JLabel text){
container.setBackground(Color.red);
add(container);
}
}
DescriptionPanel
ще има размер 0x0, освен ако не се добави съдържание илиset(Preferred/Maximum/Minimum)Size()
не се извика или отмени. Какво правиDescriptionPanel
? Кодът смътно подсказва, че трябва да прави нещо сJLabel
. - person Andrew Thompson   schedule 02.12.2012