Na zajęciach laboratoryjnych dostałam za zadanie przerobienie kodu tak aby wykresy uruchamiały się w jednym okienku a nie w kilku.
Konstrukcja pierwotnej wersji była następująca
JFrame posiadało pole JPanel. JFrame nie miało ustawionego layout'u
private void initComponents() {// GEN-BEGIN:initComponents
getContentPane().setLayout(null);
setTitle("Wykres");
addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentResized(java.awt.event.ComponentEvent evt) {
resizedWindow(evt);
}
});
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width - MIN_WIDTH) / 2, (screenSize.height - MIN_HEIGHT) / 2, MIN_WIDTH, MIN_HEIGHT);
}
A JPanel w JFrame w następujący sposob
BorderLayout borderLayout = new BorderLayout();
borderLayout.setHgap(0);
borderLayout.setVgap(0);
drawPanel = new JDrawPanel();
drawPanel.setLayout(borderLayout);
drawPanel.setComponentOrientation(ComponentOrientation.UNKNOWN);
setContentPane(drawPanel);
Gdy usunę dziedziczenie po JFrame a dodam po JPanelu , metoda paintComponent(arg0); się nie wywołuje. myśle ze jest to spowodowane złymi ustawieniami layoutu. Jednak caly program opiera się na wyliczeniach odległości od krawędzi itd wiec nie chciałabym tego zmieniać. W jaki sposób mogłabym najlatwiej z edytować taki program?
Nie będe ukrywać że Swing jest moją piętą achillesową. Wole inne rozwiązania :)