principlejavaMinor
What constructor implementaton follows best practice in Java
Viewed 0 times
whatpracticejavafollowsconstructorimplementatonbest
Problem
I am looking for best practices as they apply to constructor usage in common Java class construction.
Example 1
Example2
Example 1
import javax.swing.*;
import java.awt.*;
public class Painter extends JPanel{
public Painter(){
buildGUI();
}
private void buildGUI(){
JFrame frame = new JFrame();
frame.setLayout(new BorderLayout());
frame.setTitle("Paint drawing demonstration");
new Center_frame(frame);
JPanel headerPanel = new JPanel();
headerPanel.add(new JLabel("The drawing panel is below"));
Drawing_panel dp = new Drawing_panel();
frame.add(BorderLayout.NORTH,headerPanel);
frame.add(BorderLayout.SOUTH,dp);
frame.pack();
frame.setVisible(true);
}
public static void main(String args[]){
new Painter();
}
}//end class PainterExample2
import javax.swing.*;
import java.awt.*;
public class Painter extends JPanel{
public Painter(){
JFrame frame = new JFrame();
frame.setLayout(new BorderLayout());
frame.setTitle("Paint drawing demonstration");
new Center_frame(frame);
JPanel headerPanel = new JPanel();
headerPanel.add(new JLabel("The drawing panel is below"));
Drawing_panel dp = new Drawing_panel();
frame.add(BorderLayout.NORTH,headerPanel);
frame.add(BorderLayout.SOUTH,dp);
frame.pack();
frame.setVisible(true);
}
public static void main(String args[]){
//create a Painter object
new Painter();
}
}//end class PainterSolution
no one from them, this should be standard or base
EDIT: added DefaultCloseOperation for Top-Level Container
EDIT: added DefaultCloseOperation for Top-Level Container
import javax.swing.*;
import java.awt.*;
public class Painter {
private JFrame frame;
private JPanel headerPanel;
private Drawing_panel ;
public Painter() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.setTitle("Paint drawing demonstration");
//new Center_frame(frame);
//no reason for create another new JFrame look for
//JDialog instead of JFrame, if you needed multiplayed
//view then check CardLayout, is very easy for use
headerPanel = new JPanel();
headerPanel.add(new JLabel("The drawing panel is below"));
dp = new Drawing_panel();
frame.add(headerPanel, BorderLayout.NORTH);
frame.add(dp, BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Painter p = new Painter();
}
});
}
}Code Snippets
import javax.swing.*;
import java.awt.*;
public class Painter {
private JFrame frame;
private JPanel headerPanel;
private Drawing_panel ;
public Painter() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.setTitle("Paint drawing demonstration");
//new Center_frame(frame);
//no reason for create another new JFrame look for
//JDialog instead of JFrame, if you needed multiplayed
//view then check CardLayout, is very easy for use
headerPanel = new JPanel();
headerPanel.add(new JLabel("The drawing panel is below"));
dp = new Drawing_panel();
frame.add(headerPanel, BorderLayout.NORTH);
frame.add(dp, BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Painter p = new Painter();
}
});
}
}Context
StackExchange Code Review Q#4850, answer score: 4
Revisions (0)
No revisions yet.