달력만들기 질문드립니다ㅠㅠ
사랑해
package sds;
import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.im.InputContext;import java.util.Calendar;
import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JTextField;public class CalenderJFrame extends JFrame implements ActionListener{ //Jframe 설정변수 DayField Dayf; JTextField jtf; JMenuItem menuItem1, menuItem2; JMenu menu1; JMenuBar Jbm; JLabel Jll ; ////기능 - 년/월이동 변수 JTextField JTF1, JTF2; JLabel JL1, JL2; JButton InPut = new JButton(이동); JPanel J1, J2; //////////////////////////// JPanel NorthTextLine; //북쪽패널 JButton Before,Next;//화살표버튼 //////////////////////////////// JPanel CenterDayfield; //중앙패널 ////////////////////////////////// static int Now_Year; //현재 날짜 static int Now_Month;//현재 달 int Now_Day; //현재 일 int w, m; //설정변수 int SearchYear; int SearchMonth; //생성자 public CalenderJFrame(int mYear,int mMonth) { setLayout(new GridLayout()); // 메뉴프레임 부분 구현 CenterDayfield = new JPanel(); Jbm = new JMenuBar(); menu1 = new JMenu(기능); menuItem1 = new JMenuItem(년/월 이동); menuItem2 = new JMenuItem(구현2); menu1.add(menuItem1); menu1.add(menuItem2); Jbm.add(menu1); Now_Year = mYear; Now_Month = mMonth; //함수부분 DoMakeCenter(mYear, mMonth); DoMakeNorth(mYear, mMonth); setJMenuBar(Jbm); setSize(400, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); // 리스너 등록 menuItem1.addActionListener(this);// 여기까지 InPut.addActionListener(this); Before.addActionListener(this); Next.addActionListener(this); }
//센터만들기 public void DoMakeCenter(int M_Year, int M_Month){ String[] Dayname = { 일, 월, 화, 수, 목, 금, 토 }; CenterDayfield.setLayout(new GridLayout(6, 7, 5, 5));// 날자 제어 Calendar cal = Calendar.getInstance();
cal.set(M_Year, M_Month - 1, 1); w = cal.get(Calendar.DAY_OF_WEEK) - 1; System.out.println(w);
for (String e : Dayname) { CenterDayfield.add(new JLabel(e, (int) CENTER_ALIGNMENT)); } for (int i = 0; i w; i++) { CenterDayfield.add(new JLabel()); } System.out.println(cal.getActualMaximum(Calendar.DATE)); for (int i = 1; i = cal.getActualMaximum(Calendar.DATE); i++) { CenterDayfield.add(new JButton( + i)); } this.add(CenterDayfield); } //북쪽만들기 public void DoMakeNorth(int M_Year, int M_Month){ NorthTextLine = new JPanel(); Before = new JButton(◀); Next = new JButton(▶); NorthTextLine.setLayout(new FlowLayout()); NorthTextLine.add(Before); Jll = new JLabel( + M_Year + 년 + M_Month + 월); Jll.setFont(new Font(고딕, Font.CENTER_BASELINE, 21)); NorthTextLine.add(Jll); NorthTextLine.add(Next); this.add(NorthTextLine); } public void DoSearch(){ JTF1 = new JTextField(년입력); JTF2 = new JTextField(월입력); JL1 = new JLabel(년 ex) 2012); JL2 = new JLabel(월 ex) 01); J1 = new JPanel(new GridLayout(1, 4)); J2 = new JPanel(new FlowLayout()); J1.add(JTF1); J1.add(JL1); J1.add(JTF2); J1.add(JL2); J2.add(InPut); J1.setSize(100,100); add(J1); add(J2); } @Override public void actionPerformed(ActionEvent e) { setResizable(true); if(e.getSource() == menuItem1){ } else if (e.getSource() == Before){ CenterDayfield.removeAll(); } else if(e.getSource() == Next){ DoMakeCenter(Now_Year, Now_Month); DoMakeNorth(Now_Year, Now_Month-1); } }}
버튼 Before를 누르면 CenterDayField가 삭제되고 그 달에 맞게 생겨야하는데.. 삭제는되는데 생기질않네요..
어디가 잘못된걸까요