728x90

JAVA 73

[프로그래머스] 대소문자 바꿔서 출력하기

내가 작성한 코드 입력받은 str 문자열을 반복문으로 하나씩 캐릭터변수 c에 담는다. 이 c가 대문자면 소문자로, 소문자면 대문자로 변경하는 if문을 작성한다. if(Character.isUpperCase(c)) { res += Character.toLowerCase(c); } else { res += Character.toUpperCase(c); } 결과 기댓값은 맞는데 아웃풋사이즈가 다르다고 나온다. 새로 작성한 코드 위에서 결과값을 res로 담아둔걸 잊었다.. 이런 실수를하다니 결과 풀고나면 다른사람들의 풀이까지 볼 수 있는 점이 장점인 것 같다. 저런 방식으로 풀 수 있구나 구경하는것도 도움이 될 것 같다!

JAVA/오류고민 2023.09.13

[JAVA] GUI 활용_ 메모장만들기

아래와 같은 메모장을 만들어보자. 각각의 버튼은 실제 기능을 수행한다. 1. 프레임과 텍스트 입력 칸 생성 JFrame f = new JFrame("메모장"); //f.setBackground(Color.CYAN); 프레임에 직접 색깔을 넣으면 적용이 안되므로 패널에 넣어야됨 JPanel jp = new JPanel(); jp.setBackground(Color.LIGHT_GRAY); jp.setLayout(null); //수동배치,풀화면으로 채우기 JTextField tf = new JTextField(); tf.setBounds(10, 20, 178, 35); JTextArea ta = new JTextArea(); ta.setBounds(10, 70, 240, 270); ta.setEditable(..

JAVA 2023.09.13

[JAVA] GUI 활용_JSlider, Image

JSlider 변화가 일어났을때 : ChangeListener MyChangeListener 내부클래스는 외부클래스에 접근할 수 있다. stateChanged 메서드를 재정의하는 ChangeListener 인터페이스를 구현한다. stateChanged의 상태가 변경될 때마다 메서드가 호출된다. 코드에서는 슬라이더의 현재 값에 따라 배경색을 변경하는 일을 담당한다. jsl.getValue()가 현재 값을 검색하는 역할이라고 할 수 있다. 슬라이더 값에 따라 colorLabel.setBackground(...)는 배경색을 설정하는 데 사용된다. 슬라이더 값을 변경하면 이 메서드가 호출되어 라벨의 배경색이 업데이트된다. 요약하면 구성요소의 변경 사항을 수신하고 배경색을 동적으로 업데이트하여 슬라이더 값에 따라..

JAVA 2023.09.12

[JAVA] GUI 활용_JMenu, JPopupMenu, 어댑터(Adapter)클래스

JMenu JPopupMenu (new MouseAdapter() 어댑터 클래스 *아래 정리본 참고 if(e.isPopupTrigger()) 이 줄은 (MouseEvent e) 가 팝업 트리거 이벤트인지 확인한다. 팝업 트리거 이벤트는 일반적으로 마우스를 마우스 오른쪽 버튼으로 클릭을 수행할 때 발생한다. pmenu.show(e.getComponent(),e.getX(),e.getY()); 이 줄은 지정된 위치에 팝업 메뉴를 표시하는 데 사용된다 . 이벤트를 트리거한 구성 요소를 반환하고 이벤트가 발생했을 때 트리거 구성 요소를 기준으로 마우스 포인터의 좌표를 제공한다. ** 어댑터(Adapter)클래스를 이용한 이벤트 처리 ** Listener 인터페이스를 구현하려면 안에 있는 추상메서드를 모두 오버라..

JAVA 2023.09.11

[JAVA] GUI 활용_Item(JComboBox, JScrollPane, JTable)

JComboBox JComboBox 객체명 = new JComboBox(); 버튼을 직접 눌렀을때 : ActionListener 버튼마다 다른결과(기능)를 발생시키는 경우 공통감지자를 사용한다. 위에서는 ActionListener 인터페이스의 actionPerformed메서드를 오버라이딩하여 출력문을 썼다. (다른 이벤트리스너도 공통감지자 가능) getSelectiedItem()의 자료형은 Object인데 대신 String을 앞에 붙여주면 명시적으로 형변환을 할 수 있다. 선택한 항목을 문자열로 처리하는 경우 필요하다. 결과 JScrollPane 수직,수평 스크롤바를 설정하기 위한 상수 int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS; int h = Scr..

JAVA 2023.09.11

[JAVA] GUI 활용_Item(JCheckBox, JRadioButton), ItemEvent

JCheckBox : 체크박스 기능, 중복체크 가능 JRadioButton : 라디오버튼 기능, 중복체크 불가능 ButtonGroup을 추가하면 라디오버튼의 상호배타성이 적용되어 단독선택할 수 있도록 한다. 결과 ItemEvent 요소의 상태가 바뀌었을때 : ItemListener 공통감지자를 사용한다. 위에서는 ItemListener 인터페이스의 itemStateChanged메서드를 오버라이딩하여 if문을 썼다. (다른 이벤트리스너도 공통감지자 가능) ItemListener il = new ItemListener() { // 아이템리스너 인터페이스를 익명클래스로 @Override public void itemStateChanged(ItemEvent e) { // 요소의 상태가 변했을 때 if (e.ge..

JAVA 2023.09.10

[JAVA] GUI 활용_JLabel, JText

JLabel 정보 또는 텍스트를 위한 라벨생성 JLabel클래스는 문자열이나 아이콘을 사용하여 객체생성 JTextField 한줄의 문자열을 입력할 수 있는 컴포넌트 JTextField의 주요메서드 String getText() : 텍스트필드에 입력된 문자열 반환 void setText(String text) : 지정된 문자열을 텍스트필드에 작성 void setEditable(boolean) : 텍스트를 입력할 수 있는지 없는지 설정(true,false) boolean isEditable() : 텍스트를 입력할 수 있는지 없는지 반환 (상태가 어떤지) JTextArea 여러줄의 문자열을 입력할 수 있는 컴포넌트 JTextArea영역보다 많은 문자열을 입력하더라도 자동으로 스크롤이 생기지 않으므로 스크롤을 ..

JAVA 2023.09.10

[JAVA] GUI 활용_JPanel

JPanel JPanel은 JFrame에 붙이는 중간역할을 한다. (요소를 갖고있는 보관함같은 역할?) 화면이 복잡한 형태인 경우 요소를 그룹별로 묶어서 표현할 수 있는데 이러한 경우 JPanel에 묶어서 Frame에 붙일 수 있다. 배치관리자 (배치를 도와주는 클래스) FlowLayout : 왼쪽에서 오른쪽으로 배치, 오른쪽에 공간이 없으면 아래로 배치 BorderLayout : 동,서,남,북,중앙 5개의 영역으로 나눠서 배치 GridLayout : 2차원 표 모양으로 n x n 으로 설정해주며 왼쪽에서 오른쪽, 위에서 아래 순으로 배치 CardLayout : 컴포넌트(버튼 등 요소)를 포개어 배치 Null : 레이아웃을 쓰지 않고 각 컴포넌트마다 수동으로 위치 설정 버튼만들기(FlowLayout, G..

JAVA 2023.09.10

[JAVA] GUI 활용_JFrame, JButton

프레임 만들기 기본 첫번째 방법 JFrame f = new JFrame(); f.setTitle("첫번째 프레임"); f.setBounds(30, 30, 400, 400); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JFrame 클래스를 상속받고 생성자에 정의한 다음 메인에서는 호출만 하는 두번째 방법 버튼만들기(null) setLayout(null); 이 없다면 생성한 버튼들이 겹쳐져서 하나로 보이므로 주의 버튼은 만들었지만 클릭해도 아무런 일이 발생하지 않는다. 버튼을 눌렀을 때 무언가 발생하게 해보자! 이벤트와 리스너 (생성한 버튼을 눌렀을 때 발생하는 것) ~Listener라는 이름으로 인터페이스를 준비해둠 (추상메..

JAVA 2023.09.10

[JAVA] 보조스트림

기반스트림 : 대상에 직접 자료를 읽고 쓰는 스트림 보조스트림 : 직접 읽고 쓰는 기능없이 기반스트림에 추가로 사용할 수 있는 기능 보조스트림은 실제로 데이터를 주고받을 수는 없지만 기반스트림의 성능을 향상시키거나 새로운 기능을 제공해주는 스트림으로 다른 보조스트림과 중첩하여 사용할 수 있다. 바이트 기반 보조스트림 - BufferdInputStream, BufferedOutputStream 문자 기반 보조스트림 - BufferedReader, BufferedWriter 문자 변환 보조스트림 : 바이트기반과 문자기반 혼합. 바이트 기반 스트림으로 텍스트를 읽고 쓰는 경우 한글이 포함되면 정상적으로 출력되지 않았다. InputStreamReader는 바이트 기반 스트림인 InputStream을 문자기반 R..

JAVA 2023.09.08
728x90