Mercurial Hosting > junotu
view src/Main.java @ 0:4e9f2e87eb7b
Repository start, basic interface mockups
author | Fox |
---|---|
date | Fri, 01 Apr 2022 00:32:11 +0200 |
parents | |
children |
line wrap: on
line source
import java.awt.Dimension; import java.awt.Font; import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.CardLayout; import java.awt.BorderLayout; import javax.swing.BoxLayout; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JTextField; import javax.swing.JTextArea; import javax.swing.JScrollPane; public class Main { public enum Tab { SEARCH, EDIT, }; public static final String PROGRAM_NAME = "Junotu"; private static final String[] TAB_NAMES = { "Search", "Edit", }; private static JFrame window; private static JPanel tabs; private static CardLayout tabsLayout; private static JPanel search; private static JPanel edit; private static int activeTab = 0; public static void main(String[] args) { window = new JFrame(); panelsCreate(); tabSwitch(Tab.EDIT.ordinal()); window.setSize(384, 384); //window.setLayout(null); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setVisible(true); } public static void tabSwitch( int tab ) { tabsLayout.show(tabs, TAB_NAMES[tab]); activeTab = tab; window.setTitle(preferredTitle()); } private static void panelsCreate() { tabsLayout = new CardLayout(); tabs = new JPanel( tabsLayout ); panelsCreateSearch(); panelsCreateEdit(); window.add(tabs); tabs.add(search); tabs.add(edit); tabsLayout.addLayoutComponent( search, TAB_NAMES[Tab.SEARCH.ordinal()] ); tabsLayout.addLayoutComponent( edit, TAB_NAMES[Tab.EDIT.ordinal()] ); } private static void panelsCreateSearch() { search = new JPanel( new BorderLayout() ); JPanel top = new JPanel( new BorderLayout() ); JTextField field = new JTextField("Type here.."); JButton submit = new JButton("Search"); field.setPreferredSize( new Dimension(32, 32) ); search.add( top, BorderLayout.NORTH ); top.add( field, BorderLayout.CENTER ); top.add( submit, BorderLayout.EAST ); } private static void panelsCreateEdit() { edit = new JPanel( new BorderLayout() ); Box scrollContent = Box.createVerticalBox(); JScrollPane scroll = new JScrollPane( scrollContent ); JTextField title = new JTextField( "Title" ); JTextArea content = new JTextArea( "Here you go. Some text." ); Box bottom = Box.createHorizontalBox(); JButton back = new JButton("Cancel"); JButton save = new JButton("Save"); title.setFont( new Font( "Monospaced", Font.PLAIN, 32 ) ); content.setFont( new Font( "Monospaced", Font.PLAIN, 16 ) ); scroll.getVerticalScrollBar().setUnitIncrement(16); title.setMaximumSize( new Dimension( 1000000, 64 ) ); edit.add( scroll, BorderLayout.CENTER ); scrollContent.add( title ); scrollContent.add( Box.createVerticalStrut(10) ); scrollContent.add( content ); edit.add( bottom, BorderLayout.SOUTH ); bottom.add( back ); bottom.add( Box.createHorizontalGlue() ); bottom.add( save ); //scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); } private static String preferredTitle() { return PROGRAM_NAME+" - "+TAB_NAMES[activeTab]; } }