basic gui implemented for week11 challenge.
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
public class App {
|
||||
public static void main(String[] args) {
|
||||
Gui g = new Gui();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
|
||||
public class Button extends JButton {
|
||||
private boolean selected;
|
||||
private Color bg;
|
||||
private Color fg;
|
||||
|
||||
public Button(String buttonLabel, Color bg, Color fg) {
|
||||
super(buttonLabel);
|
||||
this.bg = bg;
|
||||
this.fg = fg;
|
||||
|
||||
deselect();
|
||||
}
|
||||
|
||||
public void deselect() {
|
||||
selected = false;
|
||||
applyDefaultStyle();
|
||||
}
|
||||
|
||||
public void select() {
|
||||
selected = true;
|
||||
applyFocusedStyle();
|
||||
}
|
||||
|
||||
private void applyDefaultStyle() {
|
||||
setBackground(bg);
|
||||
setForeground(fg);
|
||||
}
|
||||
|
||||
private void applyFocusedStyle() {
|
||||
setBackground(fg);
|
||||
setForeground(bg);
|
||||
}
|
||||
|
||||
private void applyCommon() {
|
||||
addMouseListener(
|
||||
new MouseListener() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {}
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e) {}
|
||||
|
||||
@Override
|
||||
public void mouseReleased(MouseEvent e) {}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent e) {
|
||||
select();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent e) {
|
||||
deselect();
|
||||
}
|
||||
});
|
||||
|
||||
setFocusPainted(false);
|
||||
setBorder(new EmptyBorder(3,3,3,3));
|
||||
|
||||
repaint();
|
||||
revalidate();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.UIManager;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Dimension;
|
||||
|
||||
public class Gui extends JFrame {
|
||||
public Gui() {
|
||||
super("Java Swing Challenge");
|
||||
init();
|
||||
|
||||
add(new Panel(Color.DARK_GRAY, Color.WHITE));
|
||||
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
private void init() {
|
||||
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||
setLayout(new BorderLayout());
|
||||
setSize(new Dimension(750, 550));
|
||||
setResizable(false);
|
||||
setLocationRelativeTo(null);
|
||||
|
||||
try {
|
||||
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
|
||||
} catch (Exception e) {
|
||||
System.out.println("Error with cross platform look and feel.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
|
||||
public class Panel extends JPanel {
|
||||
private Color bg;
|
||||
private Color fg;
|
||||
|
||||
public Panel(Color bg, Color fg) {
|
||||
super();
|
||||
this.bg = bg;
|
||||
this.fg = fg;
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
private void init() {
|
||||
setBackground(bg);
|
||||
setForeground(fg);
|
||||
|
||||
add(new Button("Example text", new Color(160, 32, 240), Color.WHITE));
|
||||
}
|
||||
}
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/bin/zsh
|
||||
|
||||
javac *.java
|
||||
java App
|
||||
|
||||
rm *.class
|
||||
Reference in New Issue
Block a user