Compare commits

...

5 Commits

Author SHA1 Message Date
Matti
59998680ad Add LabeledRadioButtons 2024-06-06 22:19:00 +02:00
Matti
8429d5d7ae Add Maker methods 2024-06-06 22:06:33 +02:00
Matti
dd5284972c Add Images / RadioButtons 2024-06-06 21:28:01 +02:00
Matti
ba814ad400 Add "AddLabeledTextBox" 2024-06-06 19:52:55 +02:00
Matti
238759ad89 Start with good (?) Version.
Just adding MenuBar does not show?
2024-06-06 19:42:33 +02:00
3 changed files with 190 additions and 4 deletions

BIN
Medien/Bilder/info_I.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 750 B

View File

@ -2,9 +2,14 @@ package part5;
public class Demo { public class Demo {
public static void main(String[] args) { public static void main(String[] args) {
for (int i = 0; i < 2; i++) { // for (int i = 0; i < 2; i++) {
Window w = new Window("My Java GUI"); // Window w = new Window("My Java GUI");
w.display(); // w.display();
} // }
aufg gudWindow = new aufg("Mein Geilo GUI", 700, 420);
gudWindow.loadDesign();
gudWindow.display(true);
} }
} }

181
src/part5/aufg.java Normal file
View File

@ -0,0 +1,181 @@
package part5;
import javax.swing.*;
public class aufg {
private String title;
private int height;
private int width;
private JFrame window;
private JPanel contentPane;
private JMenuBar menubar;
public aufg(String title, int height, int width){
this.title = title;
this.width = width;
this.height = height;
this.window = new JFrame();
this.contentPane = new JPanel();
this.menubar = new JMenuBar();
}
public void display(boolean exitOnClose){
this.window.setTitle(this.title);
this.window.setSize(this.width, this.height);
this.window.setContentPane(this.contentPane);
this.window.setVisible(true);
if (exitOnClose){
this.window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
public void loadDesign(){
addMenuBar();
addLabeledTextField("TextBox", true);
addLabeledPasswordField("Password", true);
addImage("Medien/Bilder/info_I.png");
addImage("Medien/Bilder/HackerUnicorn_Schäbig.png");
addLabeledRadioButtons("First Set of radiobuttons", new String[] {"Option1", "Choice2", "Variant3"}, true);
addLabeledRadioButtons("Second Group of Options", new String[] {"Maybe this?", "Or that"}, true);
}
public void addMenuBar(){
JMenu file = new JMenu("File");
JMenuItem fileOpen = new JMenuItem("Open");
JMenuItem fileEdit = new JMenuItem("Edit");
JMenuItem fileClose = new JMenuItem("Close");
file.add(fileOpen);
file.add(fileEdit);
file.add(fileClose);
JMenu help = new JMenu("Help");
JMenuItem helpInfo = new JMenuItem("Info");
JMenuItem helpUnsub = new JMenuItem("Unsubscribe");
help.add(helpInfo);
help.add(helpUnsub);
JMenu english = new JMenu("English");
JMenuItem englishChangeTo = new JMenuItem("Change to English");
english.add(englishChangeTo);
JMenu braile = new JMenu("Braile");
JMenuItem braileChangeTo = new JMenuItem("Change to Braile");
braile.add(braileChangeTo);
this.menubar.add(file);
this.menubar.add(help);
this.menubar.add(english);
this.menubar.add(braile);
this.window.setJMenuBar(this.menubar);
}
public void addLabel(String text){
this.contentPane.add(makeLabel(text));
}
public JLabel makeLabel(String text){
return new JLabel(text);
}
public void addTextField(int columns){
this.contentPane.add(makeTextField(columns));
}
public JTextField makeTextField(int columns){
return new JTextField(columns);
}
public void addLabeledTextField(String labelText, boolean makeVertical){
this.contentPane.add(makeLabeledTextField(labelText,makeVertical));
}
public Box makeLabeledTextField(String labelText, boolean makeVertical){
Box b;
if (makeVertical) {
b = Box.createVerticalBox();
}else{
b = Box.createHorizontalBox();
}
b.add(makeLabel(labelText));
b.add(makeTextField(10));
return b;
}
public void addPasswordField(){
this.contentPane.add(makePasswordField());
}
public JPasswordField makePasswordField(){
return new JPasswordField(10);
}
public void addLabeledPasswordField(String label, boolean makeVertical){
this.contentPane.add(makeLabeledPasswordField(label,makeVertical));
}
public Box makeLabeledPasswordField(String label, boolean makeVertical){
Box b;
if (makeVertical) {
b = Box.createVerticalBox();
}else{
b = Box.createHorizontalBox();
}
b.add(makeLabel(label));
b.add(makePasswordField());
return b;
}
public void addTextArea(int rows, int cols){
this.contentPane.add(makeTextArea(rows, cols));
}
public JTextArea makeTextArea(int rows, int cols){
return new JTextArea(rows, cols);
}
public void addImage(String link){
this.contentPane.add(makeImage(link));
}
public JButton makeImage(String link){
Icon i = new ImageIcon(link);
return new JButton(i);
}
public void addRadioButtons(String[] options){
this.contentPane.add(makeRadioButtons(options));
}
public Box makeRadioButtons(String[] options){
Box b = Box.createVerticalBox();
ButtonGroup group = new ButtonGroup();
// this.contentPane.setLayout(new FlowLayout()); Don't know what this does,
// Can't be bothered to look it up
// Can be bothered to type this tho
for (String option: options){
JRadioButton button = new JRadioButton(option);
b.add(button);
group.add(button);
}
b.add(Box.createVerticalStrut(10));
return b;
}
public void addLabeledRadioButtons(String label, String[] options, boolean makeVertical){
this.contentPane.add(makeLabeledRadioButtons(label, options, makeVertical));
}
public Box makeLabeledRadioButtons(String label, String[] options, boolean makeVertical){
Box b;
if (makeVertical) {
b = Box.createVerticalBox();
}else{
b = Box.createHorizontalBox();
}
b.add(makeLabel(label));
b.add(makeRadioButtons(options));
return b;
}
}