annotate src/Main.java @ 0:4e9f2e87eb7b

Repository start, basic interface mockups
author Fox
date Fri, 01 Apr 2022 00:32:11 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
1
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
2 import java.awt.Dimension;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
3 import java.awt.Font;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
4
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
5 import javax.swing.JFrame;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
6 import javax.swing.JPanel;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
7
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
8 import java.awt.CardLayout;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
9 import java.awt.BorderLayout;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
10 import javax.swing.BoxLayout;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
11
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
12 import javax.swing.Box;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
13 import javax.swing.JButton;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
14 import javax.swing.JTextField;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
15 import javax.swing.JTextArea;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
16 import javax.swing.JScrollPane;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
17
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
18
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
19 public class Main {
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
20
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
21 public enum Tab {
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
22 SEARCH,
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
23 EDIT,
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
24 };
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
25
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
26 public static final String PROGRAM_NAME = "Junotu";
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
27
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
28 private static final String[] TAB_NAMES = {
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
29 "Search",
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
30 "Edit",
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
31 };
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
32
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
33 private static JFrame window;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
34
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
35 private static JPanel tabs;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
36 private static CardLayout tabsLayout;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
37 private static JPanel search;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
38 private static JPanel edit;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
39
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
40 private static int activeTab = 0;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
41
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
42 public static void main(String[] args)
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
43 {
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
44
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
45 window = new JFrame();
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
46 panelsCreate();
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
47 tabSwitch(Tab.EDIT.ordinal());
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
48
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
49 window.setSize(384, 384);
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
50 //window.setLayout(null);
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
51 window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
52 window.setVisible(true);
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
53 }
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
54
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
55 public static void tabSwitch( int tab )
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
56 {
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
57 tabsLayout.show(tabs, TAB_NAMES[tab]);
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
58 activeTab = tab;
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
59 window.setTitle(preferredTitle());
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
60 }
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
61
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
62 private static void panelsCreate()
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
63 {
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
64
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
65 tabsLayout = new CardLayout();
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
66 tabs = new JPanel( tabsLayout );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
67
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
68 panelsCreateSearch();
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
69 panelsCreateEdit();
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
70
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
71 window.add(tabs);
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
72 tabs.add(search);
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
73 tabs.add(edit);
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
74 tabsLayout.addLayoutComponent( search, TAB_NAMES[Tab.SEARCH.ordinal()] );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
75 tabsLayout.addLayoutComponent( edit, TAB_NAMES[Tab.EDIT.ordinal()] );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
76
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
77 }
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
78
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
79 private static void panelsCreateSearch()
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
80 {
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
81 search = new JPanel( new BorderLayout() );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
82
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
83 JPanel top = new JPanel( new BorderLayout() );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
84 JTextField field = new JTextField("Type here..");
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
85 JButton submit = new JButton("Search");
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
86
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
87 field.setPreferredSize( new Dimension(32, 32) );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
88
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
89 search.add( top, BorderLayout.NORTH );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
90 top.add( field, BorderLayout.CENTER );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
91 top.add( submit, BorderLayout.EAST );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
92
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
93 }
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
94
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
95 private static void panelsCreateEdit()
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
96 {
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
97 edit = new JPanel( new BorderLayout() );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
98
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
99 Box scrollContent = Box.createVerticalBox();
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
100 JScrollPane scroll = new JScrollPane( scrollContent );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
101 JTextField title = new JTextField( "Title" );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
102 JTextArea content = new JTextArea( "Here you go. Some text." );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
103
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
104 Box bottom = Box.createHorizontalBox();
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
105 JButton back = new JButton("Cancel");
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
106 JButton save = new JButton("Save");
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
107
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
108 title.setFont( new Font( "Monospaced", Font.PLAIN, 32 ) );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
109 content.setFont( new Font( "Monospaced", Font.PLAIN, 16 ) );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
110
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
111 scroll.getVerticalScrollBar().setUnitIncrement(16);
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
112
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
113 title.setMaximumSize( new Dimension( 1000000, 64 ) );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
114
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
115 edit.add( scroll, BorderLayout.CENTER );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
116 scrollContent.add( title );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
117 scrollContent.add( Box.createVerticalStrut(10) );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
118 scrollContent.add( content );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
119
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
120 edit.add( bottom, BorderLayout.SOUTH );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
121 bottom.add( back );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
122 bottom.add( Box.createHorizontalGlue() );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
123 bottom.add( save );
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
124
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
125 //scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
126
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
127 }
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
128
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
129 private static String preferredTitle()
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
130 {
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
131 return PROGRAM_NAME+" - "+TAB_NAMES[activeTab];
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
132 }
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
133
4e9f2e87eb7b Repository start, basic interface mockups
Fox
parents:
diff changeset
134 }