스윙, 자바로 작업 관리 프로그램을 만들면
엔지니어인데도 상대방의 방향만 애매모호하게 이해하고 공부하고 있습니다.
그 일환으로 나는 임무 관리 프로그램을 만들면서 대상을 향한 쓰기를 이해하기로 했다.
비망록으로 과정을 남겼다.
당분간 방법으로 이런 느낌.
· 개인용 데스크톱 프로그램 (로그인 같은 것은 가입하고 싶지 않습니다.)
· 기본 UI 존중
trello
https://trello.com/· 등록 퀘스트의 기록 사용
SQLite
그래서 첫 페이지를 만들었어요.이런 느낌의 전선으로 움직이고 있다.(팩스를 보내기 전에.)
public class Top extends JFrame{
/**
* アプリケーションの起動
*/
public static void main(String[] args) {
Top frame = new Top("Task Manager");
frame.setVisible(true);
}
Top(String title){
setTitle(title);
setBounds(100, 100, 1000, 800);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
//TODOタスク表示領域
//タスク表示領域配置
JPanel TodoPanel = new JPanel();
TodoPanel.setPreferredSize(new Dimension(300, 600));
TodoPanel.setBackground(Color.WHITE);
TodoPanel.setLayout(new BoxLayout(TodoPanel, BoxLayout.X_AXIS));
//タイトルを置く用のパネル
JPanel TodoTitlePanel = new JPanel();
TodoTitlePanel.setPreferredSize(new Dimension(300, 60));
TodoTitlePanel.setBackground(Color.WHITE);
TodoTitlePanel.setLayout(new BoxLayout(TodoTitlePanel, BoxLayout.Y_AXIS));
TodoTitlePanel.setAlignmentY(0.0f);
TodoPanel.add(TodoTitlePanel);
//タイトル配置
JLabel label = new JLabel("TODO");
label.setFont(new Font("MS ゴシック", Font.BOLD, 32));
label.setAlignmentX(0.5f);
TodoTitlePanel.add(label);
//枠線
LineBorder border = new LineBorder(Color.BLACK, 2, true);
TodoPanel.setBorder(border);
//DOINGタスク表示領域
//タスク表示領域配置
JPanel DoingPanel = new JPanel();
DoingPanel.setPreferredSize(new Dimension(300, 600));
DoingPanel.setBackground(Color.WHITE);
DoingPanel.setLayout(new BoxLayout(DoingPanel, BoxLayout.X_AXIS));
//タイトルを置く用のパネル
JPanel DoingTitlePanel = new JPanel();
DoingTitlePanel.setPreferredSize(new Dimension(300, 60));
DoingTitlePanel.setBackground(Color.WHITE);
DoingTitlePanel.setLayout(new BoxLayout(DoingTitlePanel, BoxLayout.Y_AXIS));
DoingTitlePanel.setAlignmentY(0.0f);
DoingPanel.add(DoingTitlePanel);
//タイトル配置
JLabel doingLabel = new JLabel("DOING");
doingLabel.setFont(new Font("MS ゴシック", Font.BOLD, 32));
doingLabel.setAlignmentX(0.5f);
DoingTitlePanel.add(doingLabel);
//枠線
LineBorder border2 = new LineBorder(Color.BLACK, 2, true);
DoingPanel.setBorder(border2);
//DONEタスク表示領域
//タスク表示領域配置
JPanel DonePanel = new JPanel();
DonePanel.setPreferredSize(new Dimension(300, 600));
DonePanel.setBackground(Color.WHITE);
DonePanel.setLayout(new BoxLayout(DonePanel, BoxLayout.X_AXIS));
//タイトルを置く用のパネル
JPanel DoneTitlePanel = new JPanel();
DoneTitlePanel.setPreferredSize(new Dimension(300, 60));
DoneTitlePanel.setBackground(Color.WHITE);
DoneTitlePanel.setLayout(new BoxLayout(DoneTitlePanel, BoxLayout.Y_AXIS));
DoneTitlePanel.setAlignmentY(0.0f);
DonePanel.add(DoneTitlePanel);
//枠線
LineBorder border3 = new LineBorder(Color.BLACK, 2, true);
DonePanel.setBorder(border3);
//タイトル配置
JLabel doneLabel = new JLabel("DONE");
doneLabel.setFont(new Font("MS ゴシック", Font.BOLD, 32));
doneLabel.setAlignmentX(0.5f);
DoneTitlePanel.add(doneLabel);
//ボタン配置
JPanel buttonPanel = new JPanel();
JButton createButton = new JButton("新規作成");
createButton.setPreferredSize(new Dimension(100,50));
buttonPanel.add(createButton);
JButton editButton = new JButton("タスクを編集");
editButton.setPreferredSize(new Dimension(100,50));
buttonPanel.add(editButton);
Container contentPane = getContentPane();
contentPane.add(TodoPanel);
contentPane.add(DoingPanel);
contentPane.add(DonePanel);
contentPane.add(buttonPanel);
}
}
길다.같은 처리를 하는 곳이 세 군데 있다.
스윙에 라벨과 패널을 만들 때 하나하나 new를 만들어야 해요. 귀찮아요.
따라서 중복 처리된 코드는 다음과 같다.
public class Top extends JFrame{
/**
* アプリケーションの起動
*/
public static void main(String[] args) {
Top frame = new Top("Task Manager");
frame.setVisible(true);
}
Top(String title){
setTitle(title);
setBounds(100, 100, 1000, 800);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
//TODOタスク表示
makeTaskPanel("TODO");
//DOINGタスク表示
makeTaskPanel("DOING");
//DONEタスク表示領域
makeTaskPanel("DONE");
//ボタン配置
JPanel buttonPanel = new JPanel();
TaskRegister taskRegisterPanel = new TaskRegister();
this.add(taskRegisterPanel);
taskRegisterPanel.setVisible(false);
JButton createButton = new JButton("新規作成");
buttonPanel.add(createButton);
JButton editButton = new JButton("タスクを編集");
editButton.setPreferredSize(new Dimension(100,50));
buttonPanel.add(editButton);
Container contentPane = getContentPane();
contentPane.add(buttonPanel);
}
public void makeTaskPanel(String panelTitle){
//titleに指定したタイトルテキストをつけてタスクパネルを作ります
JPanel mainPanel = new JPanel();
JPanel titlePanel = new JPanel();
JLabel titleLabel = new JLabel(panelTitle);
LineBorder border = new LineBorder(Color.BLACK, 2, true);
//タスク表示領域配置
mainPanel.setPreferredSize(new Dimension(300, 600));
mainPanel.setBackground(Color.WHITE);
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.X_AXIS));
//タイトルを置く用のパネル
titlePanel.setPreferredSize(new Dimension(300, 60));
titlePanel.setBackground(Color.WHITE);
titlePanel.setLayout(new BoxLayout(titlePanel, BoxLayout.Y_AXIS));
titlePanel.setAlignmentY(0.0f);
mainPanel.add(titlePanel);
//タイトル配置
titleLabel.setFont(new Font("MS ゴシック", Font.BOLD, 32));
titleLabel.setAlignmentX(0.5f);
titlePanel.add(titleLabel);
//枠線
mainPanel.setBorder(border);
Container contentPane = getContentPane();
contentPane.add(mainPanel);
}
}
중복되는 것은1. 필요한 패널, label 등 new
2. 마음대로 크기 조정
할 부분이라서 거기 부분을 방법대로 잘라냈어요.
대상을 향한 응집도가 강할수록 결합도가 낮을수록 좋은 디자인이라고 한다.
되풀이하는 기능을 최대한 집중해서 한쪽을 간단하게 불러낼 수 있게 하자는 말인가.
앞으로도 열심히 하겠습니다.
Reference
이 문제에 관하여(스윙, 자바로 작업 관리 프로그램을 만들면), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Ohtak/items/1be20a4b06b5833c3d61텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)