카테고리 없음

26.JAVA 예제 정리 [상속응용]

woogy99 2024. 12. 13. 18:04

package com.sist.main;

 

import java.awt.Color;

import java.awt.Font;

import javax.swing.JButton;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.table.DefaultTableModel;

import com.sist.vo.*;

import com.sist.manager.*;

import java.awt.event.*;

 

public class MusicFindPanel extends JPanel implements ActionListener {

JLabel la;

JButton b1, b2;

JTable table;

DefaultTableModel model;

JTextField tf;

GenieMusicSystem gm = new GenieMusicSystem();

 

public MusicFindPanel() {

 

setLayout(null);

tf = new JTextField();

la = new JLabel("Music 검색", JLabel.CENTER);

la.setFont(new Font("궁서체", Font.BOLD, 35));

la.setBounds(10, 15, 760, 50);

add(la);

 

tf.setBounds(10, 70, 200, 30);

add(tf);

String[] col = { "순위", "곡명", "가수명", "앨범" };

String[][] row = new String[0][4];

model = new DefaultTableModel(row, col);

table = new JTable(model);

JScrollPane js = new JScrollPane(table);

js.setBounds(10, 105, 760, 400);

add(js);

tf.addActionListener(this);

}

 

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub\

 

if (e.getSource() == tf)// 엔터를 쳤다면

{

// 입력 데이터 읽기

String fd = tf.getText();

if (fd.trim().length() < 1) {

// 입력이 안된 상태

JOptionPane.showMessageDialog(this, "검색어를 입력하세요");

// JOptionPane.showConfirmDialog(this, "검색어를 입력하세요");

tf.requestFocus();

return;

}

musicFind(fd);

}

}

 

public void musicFind(String fd) {

for (int i = model.getRowCount() - 1; i >= 0; i--) {

model.removeRow(i);

}

 

MusicVO[] music = gm.musicFindData(fd);

for (MusicVO vo : music) {

String[] data = { String.valueOf(vo.getNo()), vo.getTitle(), vo.getSinger(), vo.getAlbum()

};

 

model.addRow(data);

}

}

}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

 


package com.sist.main;

 

import java.awt.Color;

import com.sist.vo.*;

import java.awt.Font;

 

import javax.swing.*;

import javax.swing.table.*;

import com.sist.manager.*;

import java.awt.event.*;

 

public class MusicListPanel extends JPanel implements ActionListener {

JLabel la;

JButton b1, b2;

JTable table;

DefaultTableModel model;

GenieMusicSystem gm = new GenieMusicSystem();

 

public MusicListPanel() {

 

setLayout(null);

la = new JLabel("Music Top 50", JLabel.CENTER);

la.setFont(new Font("궁서체", Font.BOLD, 35));

la.setBounds(10, 15, 760, 50);

add(la);

 

b1 = new JButton("지니뮤직");

b2 = new JButton("멜론");

b1.setBounds(10, 75, 120, 30);

b2.setBounds(135, 75, 100, 30);

add(b1);

add(b2);

 

String[] col = { "순위", "곡명", "가수명", "앨범" };

String[][] row = new String[0][4];

model = new DefaultTableModel(row, col);

table = new JTable(model);

 

JScrollPane js = new JScrollPane(table);

js.setBounds(10, 110, 760, 400);

add(js);

 

b1.addActionListener(this);

b2.addActionListener(this);

table.setRowHeight(40);

}

 

public void musicprint(int type) {

 

for (int i = model.getRowCount() - 1; i >= 0; i--) {

 

model.removeRow(i);

 

}

if (type == 1) {

gm = new GenieMusicSystem();

la.setText("지니뮤직 TOP 50");

} else {

gm = new MelonMusicSystem();

la.setText("멜론뮤직 TOP 50");

}

//la.setText(gm.title);

MusicVO[] musics = gm.musicAllData();

for (MusicVO vo : musics) {

String[] data = { String.valueOf(vo.getNo()), vo.getTitle(), vo.getSinger(), vo.getAlbum() };

model.addRow(data);

 

}

}

 

// 버튼 처리 메소드

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if (e.getSource() == b1) { // b1번 버튼을 눌렀다면

musicprint(1);

b1.setEnabled(false);

b2.setEnabled(true);

 

} else if (e.getSource() == b2) {

musicprint(2);

b2.setEnabled(false);

b1.setEnabled(true);

}

}

}

 


package com.sist.main;

 

import javax.swing.*;

import javax.swing.table.*;

 

public class MusicUserMain extends JFrame {

JTabbedPane tp;

MusicListPanel mlp = new MusicListPanel();

MusicFindPanel mfp = new MusicFindPanel();

MusicDetailPanel mdp = new MusicDetailPanel();

 

public MusicUserMain() {

tp = new JTabbedPane();

tp.addTab("뮤직목록", mlp);

tp.addTab("뮤직검색", mfp);

tp.addTab("상세보기", mdp);

tp.setTabPlacement(JTabbedPane.NORTH);

// 윈도우에 추가

add("Center", tp);

 

setSize(800, 600);

setVisible(true);

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

 

public static void main(String[] args) {

// TODO Auto-generated method stub

new MusicUserMain();

}

 

}


package com.sist.main;

 

import javax.swing.*;

import javax.swing.table.*;

 

public class MusicUserMain extends JFrame {

JTabbedPane tp;

MusicListPanel mlp = new MusicListPanel();

MusicFindPanel mfp = new MusicFindPanel();

MusicDetailPanel mdp = new MusicDetailPanel();

 

public MusicUserMain() {

tp = new JTabbedPane();

tp.addTab("뮤직목록", mlp);

tp.addTab("뮤직검색", mfp);

tp.addTab("상세보기", mdp);

tp.setTabPlacement(JTabbedPane.NORTH);

// 윈도우에 추가

add("Center", tp);

 

setSize(800, 600);

setVisible(true);

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

 

public static void main(String[] args) {

// TODO Auto-generated method stub

new MusicUserMain();

}

 

}


package com.sist.main;

 

import javax.swing.*;

import javax.swing.table.*;

 

public class MusicUserMain extends JFrame {

JTabbedPane tp;

MusicListPanel mlp = new MusicListPanel();

MusicFindPanel mfp = new MusicFindPanel();

MusicDetailPanel mdp = new MusicDetailPanel();

 

public MusicUserMain() {

tp = new JTabbedPane();

tp.addTab("뮤직목록", mlp);

tp.addTab("뮤직검색", mfp);

tp.addTab("상세보기", mdp);

tp.setTabPlacement(JTabbedPane.NORTH);

// 윈도우에 추가

add("Center", tp);

 

setSize(800, 600);

setVisible(true);

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

 

public static void main(String[] args) {

// TODO Auto-generated method stub

new MusicUserMain();

}

 

}


package com.sist.vo;

 

 

 

public class MusicVO {

private int no;

private String title;

private String singer;

private String album;

//변수 => 읽기(메모리에서 데이터 가지고 오기) / 쓰기(메모리 저장)

// get변수명() set변수명(매개변수)

 

public int getNo() {

return no;

}

public void setNo(int no) {

this.no = no;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public String getSinger() {

return singer;

}

public void setSinger(String singer) {

this.singer = singer;

}

public String getAlbum() {

return album;

}

public void setAlbum(String album) {

this.album = album;

}

 

 

 

}