Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package treePainter;
- import java.awt.EventQueue;
- import java.awt.Graphics;
- import javax.swing.JFrame;
- import java.awt.Toolkit;
- import javax.swing.JButton;
- import java.awt.BorderLayout;
- import javax.swing.JPanel;
- import javax.swing.JLabel;
- import javax.swing.JTextField;
- import javax.swing.UIManager;
- public class Main {
- private JFrame frmTreePainter;
- private JTextField textField;
- class MyPanel extends JPanel {
- private static final long serialVersionUID = 1L;
- int levels = 4;
- void paintTree(Graphics g, int x, int y, int level) {
- if (level < levels) {
- g.drawOval(x, y, 10, 10);
- g.drawString(""+x, x, y);
- int distance=30;
- paintTree(g, x - distance, y + 20, level + 1);
- paintTree(g, x + distance, y + 20, level + 1);
- if (level < levels-1) {
- g.drawLine(x, y, x+distance, y+20);
- g.drawLine(x, y, x-distance, y+20);
- }
- }
- }
- @Override
- public void paint(Graphics g) {
- // TODO Auto-generated method stub
- super.paint(g);
- paintTree(g, frmTreePainter.getWidth()/2, 10, 0);
- }
- }
- /**
- * Launch the application.
- */
- public static void main(String[] args) {
- try {
- UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
- } catch (Throwable e) {
- e.printStackTrace();
- }
- EventQueue.invokeLater(new Runnable() {
- public void run() {
- try {
- Main window = new Main();
- window.frmTreePainter.setVisible(true);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
- /**
- * Create the application.
- */
- public Main() {
- initialize();
- }
- /**
- * Initialize the contents of the frame.
- */
- private void initialize() {
- frmTreePainter = new JFrame();
- frmTreePainter.setTitle("Tree Painter");
- frmTreePainter.setIconImage(Toolkit.getDefaultToolkit()
- .getImage(Main.class.getResource("/javax/swing/plaf/metal/icons/sortUp.png")));
- frmTreePainter.setBounds(100, 100, 450, 300);
- frmTreePainter.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JPanel panelForControls = new JPanel();
- frmTreePainter.getContentPane().add(panelForControls, BorderLayout.NORTH);
- JLabel lblNewLabel = new JLabel("Tree levels:");
- panelForControls.add(lblNewLabel);
- textField = new JTextField();
- textField.setText("4");
- panelForControls.add(textField);
- textField.setColumns(10);
- JButton btnDrawIt = new JButton("Draw it!");
- panelForControls.add(btnDrawIt);
- MyPanel panel = new MyPanel();
- frmTreePainter.getContentPane().add(panel, BorderLayout.CENTER);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement