import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import org.jsoup.Jsoup; import org.jsoup.nodes.*; import org.jsoup.select.Elements; public class Project02_F extends JFrame implements ActionListener, ItemListener{ private Choice chyear, chmonth; private JLabel yLabel, mLabel; private JTextArea area; GregorianCalendar gc; private int year, month; private JLabel[] dayLabel = new JLabel[7]; private String[] day={"ÀÏ","¿ù","È","¼ö","¸ñ","±Ý","Åä"}; private JButton[] days = new JButton[42];//7ÀÏÀÌ 6ÁÖÀ̹ǷΠ42°³ÀÇ ¹öưÇÊ¿ä private JPanel selectPanel = new JPanel(); private GridLayout grid = new GridLayout(7,7,5,5);//Çà,¿,¼öÆò°¸,¼öÁ÷°¸ private Calendar ca = Calendar.getInstance(); private Dimension dimen, dimen1; private int xpos, ypos; public Project02_F(){ setTitle("¿À´ÃÀÇ QT:"+ca.get(Calendar.YEAR)+"/"+(ca.get(Calendar.MONTH)+1)+"/"+ca.get(Calendar.DATE)); setSize(900,600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); dimen = Toolkit.getDefaultToolkit().getScreenSize(); dimen1 = this.getSize(); xpos = (int)(dimen.getWidth()/2 - dimen1.getWidth()/2); ypos = (int)(dimen.getHeight()/2 - dimen1.getHeight()/2); setLocation(xpos, ypos);//ȸéÀÇ °¡¿îµ¥¿¡ Ãâ·Â setResizable(false); setVisible(true); chyear = new Choice(); chmonth = new Choice(); yLabel = new JLabel("³â"); mLabel = new JLabel("¿ù"); init(); } @Override public void actionPerformed(ActionEvent arg0) { area.setText(""); String year = chyear.getSelectedItem(); String month = chmonth.getSelectedItem(); JButton btn = (JButton)arg0.getSource(); String day = btn.getText(); System.out.println(year+","+month+","+day); String bible=year+"-"+month+"-"+day; // Jsoup API : HTMLÆÄ½Ì ¹æ¹ý //String url="https://sum.su.or.kr:8888/bible/today"; String url="https://sum.su.or.kr:8888/bible/today/Ajax/Bible/BodyMatter?qt_ty=QT1&Base_de="+bible+"&bibleType=1"; try { Document doc=Jsoup.connect(url).post(); //System.out.println(doc.toString()); Element bible_text=doc.select(".bible_text").first(); System.out.println(bible_text.text()); Element bibleinfo_box=doc.select("#bibleinfo_box").first(); System.out.println(bibleinfo_box.text()); // dailybible_info Element dailybible_info=doc.select("#dailybible_info").first(); System.out.println(dailybible_info.text()); area.append(dailybible_info.text()+"\n"); area.append(bible_text.text()+"\n"); area.append(bibleinfo_box.text()+"\n"); Elements liList=doc.select(".body_list > li"); for(Element li: liList) { String line=li.select(".info").first().text(); if(line.length()>65) { line=line.substring(0,36)+"\n"+line.substring(36,66)+"\n"+line.substring(66)+"\n"; area.append(li.select(".num").first().text()+":"+line); }else if(line.length()>35) { line=line.substring(0,36)+"\n"+line.substring(36)+"\n"; area.append(li.select(".num").first().text()+":"+line); }else { area.append(li.select(".num").first().text()+":"+li.select(".info").first().text()+"\n"); } System.out.print(li.select(".num").first().text()+":"); System.out.println(li.select(".info").first().text()); } } catch (Exception e) { e.printStackTrace(); } } public void init(){ select(); calendar(); } public void select(){ JPanel panel = new JPanel(grid);//7Çà 7¿ÀÇ ±×¸®µå·¹À̾ƿô for(int i=2020; i>=2000;i--){ chyear.add(String.valueOf(i)); } for(int i=1; i <=12; i++){ chmonth.add(String.valueOf(i)); } for(int i = 0; i < day.length;i++){//¿äÀÏ À̸§À» ·¹ÀÌºí¿¡ Ãâ·Â dayLabel[i] = new JLabel(day[i],JLabel.CENTER); panel.add(dayLabel[i]); dayLabel[i].setBackground(Color.GRAY);//»ç½Ç»ó Àǹ̰¡ ¾ø½¿. ¹Ù²îÁö ¾ÊÀ½. } dayLabel[6].setForeground(Color.BLUE);//Åä¿äÀÏ »ö»ó dayLabel[0].setForeground(Color.RED);//ÀÏ¿äÀÏ »ö»ó for(int i = 0; i < 42;i++){//¸ðµÎ 42°³ÀÇ ¹öưÀ» »ý¼º days[i] = new JButton("");//Á¦¸ñÀÌ ¾ø´Â ¹öư »ý¼º if(i % 7 == 0) days[i].setForeground(Color.RED);//ÀÏ¿äÀÏ ¹öưÀÇ »ö else if(i % 7 == 6) days[i].setForeground(Color.BLUE);//Åä¿äÀÏ ¹öưÀÇ »ö else days[i].setForeground(Color.BLACK); days[i].addActionListener(this); panel.add(days[i]); } selectPanel.add(chyear); selectPanel.add(yLabel); selectPanel.add(chmonth); selectPanel.add(mLabel); //JPanel bib=new JPanel(); area=new JTextArea(60, 40); area.setCaretPosition(area.getDocument().getLength()); JScrollPane scrollPane = new JScrollPane(area); this.add(selectPanel,"North");//¿¬µµ¿Í ¿ùÀ» ¼±ÅÃÇÒ ¼ö Àִ ȸéÀÉ »ó´Ü¿¡ Ãâ·Â this.add(panel, "Center"); this.add(scrollPane,"East"); String m = (ca.get(Calendar.MONTH)+1)+""; String y = ca.get(Calendar.YEAR)+""; chyear.select(y); chmonth.select(m); chyear.addItemListener(this); chmonth.addItemListener(this); } public void calendar(){ year = Integer.parseInt(chyear.getSelectedItem()); month=Integer.parseInt(chmonth.getSelectedItem()); gc = new GregorianCalendar(year, month-1, 1); int max = gc.getActualMaximum(gc.DAY_OF_MONTH);//ÇØ´ç ´ÞÀÇ ÃÖ´ë ÀÏ ¼ö ȹµæ int week = gc.get(gc.DAY_OF_WEEK);//ÇØ´ç ´ÞÀÇ ½ÃÀÛ ¿äÀÏ // System.out.println("DAY_OF_WEEK:"+week); String today = Integer.toString(ca.get(Calendar.DATE));//¿À´Ã ³¯Â¥ ȹµæ String today_month = Integer.toString(ca.get(Calendar.MONTH)+1);//¿À´ÃÀÇ ´Þ ȹµæ // System.out.println("today:"+today); for(int i = 0; i < days.length; i++){ days[i].setEnabled(true); } for(int i = 0; i < week-1; i++){//½ÃÀÛÀÏ ÀÌÀüÀÇ ¹öưÀ» ºñȰ¼ºÈ days[i].setEnabled(false); } for(int i = week; i< max+week; i++){ days[i-1].setText((String.valueOf(i-week+1))); days[i-1].setBackground(Color.WHITE); if(today_month.equals(String.valueOf(month))){//¿À´ÃÀÌ ¼ÓÇÑ ´Þ°ú °°Àº ´ÞÀÎ °æ¿ì if(today.equals(days[i-1].getText())){//¹öưÀÇ ³¯Â¥¿Í ¿À´Ã³¯Â¥°¡ ÀÏÄ¡ÇÏ´Â °æ¿ì days[i-1].setBackground(Color.CYAN);//¹öưÀÇ ¹è°æ»ö ÁöÁ¤ } } } for(int i = (max+week-1); i < days.length; i++){//³¯Â¥°¡ ¾ø´Â ¹öưÀ» ºñȰ¼ºÈ days[i].setEnabled(false); } // System.out.println("max+week:"+(max+week)+",week:"+week); } @Override public void itemStateChanged(ItemEvent arg0) { Color color = this.getBackground(); if(arg0.getStateChange()==ItemEvent.SELECTED){ for(int i = 0; i < 42; i++){//³âÀ̳ª ¿ùÀÌ ¼±ÅÃµÇ¸é ±âÁ¸ÀÇ ´Þ·ÂÀ» Áö¿ì°í »õ·Î ±×¸°´Ù. if( !days[i].getText().equals("")){ days[i].setText("");//±âÁ¸ÀÇ ³¯Â¥¸¦ Áö¿ò days[i].setBackground(color);//´Þ·ÂÀÇ ¹è°æ»ö°ú µ¿ÀÏÇÑ »öÀ¸·Î ¹öưÀÇ ¹è°æ»öÀ» ¼³Á¤ÇÔ. } } calendar(); } } public static void main(String[] args) { new Project02_F(); } }