Witajcie,
dopiero zaczynam przygodę z Javą i mam problem z którym od kilku godzin nie mogę sobie poradzić, szukałem w necie próbowałem z innym layoutem ale tam też nie wychodziło więc wziąłem kolejny.
Nie wyświetla mi w ogóle komponentów w ramce. Pewnie to trywialny błąd ale strasznie mi przeszkadza bo zatrzymalem się na warstwie widoku i jak grochem o sciane.
public class DelayMainFrame extends JFrame{
private JPanel mainPanel;
public DelayMainFrame() { //constructor
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenDimension = kit.getScreenSize();
setSize(screenDimension.width/2, screenDimension.height/2);
setLocationByPlatform(true);
//LayoutManager2 manager = new BasicSplitPaneUI.BasicVerticalLayoutManager();
//Components creation
JTextField signalNameTextField = new JTextField("<Put the signal name here>",20);
JLabel signalNameTextFieldLabel = new JLabel("Signal name", SwingConstants.RIGHT);
JTextField blockNameTextField = new JTextField("<Put the block name here>",20);
JLabel blockNameTextFieldLabel = new JLabel("Block name", SwingConstants.RIGHT);
JComboBox iaComboBox = new JComboBox();
iaComboBox.setEditable(true);
iaComboBox.addItem("IS");
iaComboBox.addItem("IA");
//adding components to the panel
mainPanel = new JPanel();
GroupLayout layout = new GroupLayout(mainPanel);
mainPanel.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
layout.setHorizontalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(LEADING) //s1
.addComponent(signalNameTextFieldLabel) //p1
.addComponent(blockNameTextFieldLabel)) //p2
.addGroup(layout.createParallelGroup(LEADING) //s2
.addComponent(signalNameTextField) //p1
.addComponent(blockNameTextField)) //p2
.addComponent(iaComboBox)
);
//layout.linkSize(SwingConstants.HORIZONTAL);
layout.setVerticalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(BASELINE)
.addComponent(signalNameTextFieldLabel)
.addComponent(signalNameTextField)
)
.addGroup(layout.createParallelGroup(BASELINE)
.addComponent(signalNameTextFieldLabel)
.addComponent(signalNameTextField)
.addComponent(iaComboBox)
)) ;
setTitle("Signal delay tool by DRZ");
//pack();
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
SwingUtilities.updateComponentTreeUI(DelayMainFrame.this);
}
catch (Exception e)
{
e.printStackTrace();
}
} // end constructor
public class HelloWorld {
/**
* @param args
*/
public static void main(String[] args) {
//System.out.println("Hello World!");
EventQueue.invokeLater(new Runnable() {
public void run() {
DelayMainFrame myFrame = new DelayMainFrame();
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setVisible(true);
}
});
}
}
Chodzi mi o to żeby był taki układ na tą chwilę (potem dodam więcej ale na razie nawet to nie wychodzi):
Signal name (label) | [put the signal name here] (text field)
Block name (label) | [put...] | IS/IA combo box
Proszę o pomoc bo ugrzązłem, próbowałem layout zmieniać ale nie chcę znów tego robić bo ten wygląda na w miarę uniwersalny.
Pozdrówki