好的,所以我的 GUI 有问题。在做完全相同的事情时,我遇到了以前从未遇到过的错误。我什至在使用旧代码。而且我正在考试,所以我的压力更大,因为我不明白这个问题。
主要: http: //pastebin.com/Py9S6nd3
import javax.swing.JFrame;
public class Jonth_SwingTenta {
private static void createAndShowGui() {
//Skapar ett fönster där gui komponenter läggs.
JFrame frame = new JFrame("ToDo");
//Anger vad som ska hända om fönstret stängs, i detta fall avslutas fönstret när man trycker på X.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Skapar ett objekt av klassen FormularPanel (privat lyssnarklass)
//GridBagPanel panel = new GridBagPanel();
PanelGUI panel = new PanelGUI();
// frame.setJMenuBar(panel2.getMenu());
//Lägger på panelen på frame.
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
用户界面:http : //pastebin.com/TYFG1XdU
import java.awt.*;
import javax.swing.*;
import javax.xml.bind.Marshaller.Listener;
/**
*
* @author h12mjont
*/
public class PanelGUI extends JPanel {
private JPanel panel;
private GridBagConstraints c;
private GridBagLayout gridBag;
private JLabel variID, varuNamn, varuKat;
private JTextField textField1, textField2;
private JTextArea textArea1;
private JButton laggTill, taBort, uppdatera, sokPaID, sokKat;
private Listener listener;
private DAOFactory daofactory;
private DAOInterface dao;
private JComboBox markeBox;
String[] marken = {"Frukt", "Mejeri", "Kött"};
public PanelGUI() {
panel = new JPanel(); //Skapar en ny panel där alla komponeneter ska finnas.
gridBag = new GridBagLayout(); //Skapar en gridbaglayout
c = new GridBagConstraints(); //Skapar constraints.
panel.setLayout(gridBag); //Sätter layouten.
//----------------col 1-----------------------------------
variID = new JLabel("Varu ID");
laggTillGUIGridBag(variID, 0, 0, 1, 1);
varuNamn = new JLabel("Varunamn");
laggTillGUIGridBag(varuNamn, 1, 0, 1, 1);
varuKat = new JLabel("Varukategori");
laggTillGUIGridBag(varuKat, 2, 0, 1, 1);
laggTill = new JButton("Lägg till");
laggTillGUIGridBag(laggTill, 3, 0, 1, 1);
uppdatera = new JButton("Uppdatera");
laggTillGUIGridBag(uppdatera, 4, 0, 1, 1);
sokKat = new JButton("Sök på Kategori");
laggTillGUIGridBag(sokKat, 5, 0, 2, 1);
//-----------------col 2--------------------------------
textField1 = new JTextField();
textField1.setPreferredSize(new Dimension(70, 20));
laggTillGUIGridBag(textField1, 0, 1, 2, 1);
textField2 = new JTextField();
textField2.setPreferredSize(new Dimension(70, 20));
laggTillGUIGridBag(textField2, 1, 1, 2, 1);
markeBox = new JComboBox();
markeBox.setModel(new DefaultComboBoxModel(marken));
// markeBox.addItemListener(combolyssnare);
markeBox.setPreferredSize(new Dimension(70, 20));
laggTillGUIGridBag(markeBox, 2, 1, 1, 1);
taBort = new JButton("Ta bort");
laggTillGUIGridBag(taBort, 3, 1, 1, 1);
sokPaID = new JButton("Sök på id");
laggTillGUIGridBag(sokPaID, 4, 1, 1, 1);
//-------------------col 3--------------------------------
textArea1 = new JTextArea();
textArea1.setPreferredSize(new Dimension(350, 100));
textArea1.setMinimumSize(new Dimension(350, 100));
laggTillGUIGridBag(textArea1, 0, 3, 2, 2);
//----------------Slut på GUI ----------------------------
add(panel);
}
private void laggTillGUIGridBag(Component guiKomponent, int rad, int kolumn, int bredd, int hojd) {
c.fill = GridBagConstraints.BOTH; //Gör så komponenten fyller ut sig i storlek åt båda håll.
c.gridx = kolumn;
c.gridy = rad;
c.gridwidth = bredd;
c.gridheight = hojd;
c.insets = new Insets(5, 5, 5, 5); //Sätter padding runt komponenten
gridBag.setConstraints(guiKomponent, c);
panel.add(guiKomponent, c);
}
}
我不明白问题是什么。对不起,虽然它是瑞典语,但你仍然可以理解我在做什么。
感谢您提供任何可能的帮助!