Sponsored By
















 

GUI창에서의 글자체(Font), 크기(size) 및 기타 설정 을 해주는 방법임.

 

 

 

 

 

 

 

 

00. Font 객체를 만들어줄때 입력해주면된다. Font("글씨체", 기능, Size) 를 입력하고 글씨나타내자.








01. 위에서 만든 폰트객체의 폰트변수를 사용하여 이번에는 'SanSerif' 글씨체로 해보자. 

(※. SanSerif 글씨체는 삐침이 없는 글씨체이다.)








02. 이번에는 'monospaced' 글씨체로 바꾸고 '이텔리체'를 추가해보자. 

(※. '|' 연산자는 'or' 가 아니라 폰트에서만 'and' 연산자이다. )








03. 'Dialog' 글씨체와 기본값(plain)으로 설정 해보자.








04. 한글을 추가해서 '궁서체'로 만들어보자.

 

 

 

 

 

 

※ 혹시몰라서 전체 코드를 붙여넣었다. 참고바람.

 

 

 

 

 

 

 

※. 코드

 

 

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

 

import javax.swing.JComponent;

import javax.swing.JFrame;

 

 

 

class MyComponent extends JComponent {

 

public void paint(Graphics g)

{

g.setColor(Color.GREEN);

Font font = new Font("Serif", Font.BOLD, 30);  // default 색 = black

font = new Font("SansSerif", Font.BOLD, 30);  // default 색 = black

font = new Font("monospaced", Font.BOLD | Font.ITALIC, 30);  //and operator

font = new Font("Dialog", Font.PLAIN, 30);

font = new Font("궁서체", Font.PLAIN, 30);

g.setFont(font);

 

 

 

g.drawString("한글 Hello JAVA Graphic World", 100, 100);

//g.drawLine(100, 200, 300, 350);

 

/*int[] x = { 5, 50, 100, 200, 300, 450 };

int[] y = { 90, 10, 150, 20, 300, 150};

 

g.drawPolyline(x, y, 6);  // , 라인갯수);

g.drawRect(100, 200, 100, 200);  // (시작x, 시작y, 가로길이, 세로길이); 의 사각형

 

//g.setColor(Color.RED);

g.setColor( new Color(0xff, 0x0, 0x0, 0x55) );  //red

 

g.fillRect(200, 50, 200, 200);

 

g.setColor( new Color(0x0, 0x0, 0xFF, 0x55) );  //blue

g.fillOval(150, 150, 200, 150); // 

 

g.setColor( new Color(0xff, 0x0, 0xFF, 0xBB) );  

g.fillRoundRect(50, 125, 100, 100, 30, 30); 

 

g.drawArc(200, 80, 150, 150, 45, -180);  // x,y,넓,높,시작각도,끝각도(degree) 

g.fillArc(300, 80, 150, 150, 0, 45);

g.setColor( new Color(0xff, 0xFF, 0x00, 0xBB) );

g.fillArc(300, 200, 150, 150, 0, 45);*/

 

}// paint Method

 

}// MyComponent Class

 

 

 

class MyFrame extends JFrame {

 

public MyFrame()

{

this.setTitle("No Title");

}// MyFrame Constructor

 

 

public MyFrame(String title)

{

createFrame(title);

 

this.add( new MyComponent() );

 

}// MyFrame<String> Constructor

 

 

void createFrame(String title){

 

this.setTitle(title);

this.setSize(500,400);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

this.setLayout( new BorderLayout() );

 

 

this.setVisible(true);

 

}// createFrame Constructor

 

}// MyFrame Class

 

 

 

public class Test {

 

public static void main(String[] args) {

 

new MyFrame("Graphic");

 

}// main

 

}// Main Class

 

 

 

 

 

 

 

 

 

 

GUI창에서 Graphics2D 중 GradientPaint(그라데이션(Gradation)) 사용방법임.

 

 

 

 

 

 

00. 다음과같이 코딩을 하고 실행시키면 오른쪽 처럼 나오게 된다.

코드를 조금 살펴보면, 

왼쪽 위를 0,0 좌표를 갖고있으므로 GradientPaint 객체는 100,100 자리에 RED로 잡고 

300,300 위치에 BLUE 로 잡아서 그 둘을 그라데이션 한다는 의미이다.

 

 

 

 

 

※. 이번역시 혹시몰라서 코드 전체를 넣어놨다. 참고바람.








※. 코드

 

 

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.GradientPaint;

import java.awt.Graphics;

import java.awt.Graphics2D;

 

import javax.swing.JComponent;

import javax.swing.JFrame;

 

 

 

class MyComponent extends JComponent {

 

public void paint(Graphics g)

{

Graphics2D g2 = (Graphics2D) g;

 

//그라데이션 시작이 100,100이고 300,300 인 곳은 파란색으로 하는 100-> 300 인 그라데이션 칠해라.

//GradientPaint gp = new GradientPaint(100, 100, Color.RED, 300, 300, Color.BLUE);  

GradientPaint gp = new GradientPaint(100, 100, Color.RED, 100, 200, Color.BLUE);

 

g2.setColor(Color.YELLOW);  // 붓에 노란색 칠함.

g2.fillRect(150, 150, 100, 100);  // 노란색칠해진 붓으로 사각형 그리고 채워라.

 

g2.setPaint(gp);  // 그라데이션

g2.fillRoundRect(50, 50, 250, 250, 50, 50);

 

}// paint Method

 

}// MyComponent Class

 

 

 

class MyFrame extends JFrame {

 

public MyFrame()

{

this.setTitle("No Title");

}// MyFrame Constructor

 

 

public MyFrame(String title)

{

createFrame(title);

 

this.add( new MyComponent() );

 

}// MyFrame<String> Constructor

 

 

void createFrame(String title){

 

this.setTitle(title);

this.setSize(500,400);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

this.setLayout( new BorderLayout() );

 

 

this.setVisible(true);

 

}// createFrame Constructor

 

}// MyFrame Class

 

 

 

public class Test {

 

public static void main(String[] args) {

 

new MyFrame("Graphic2D");

 

}// main

 

}// Main Class

 

 

 

 

GUI 그래픽스(Graphics) 에 대한 사용방법임.

 

 

 

 

 

 

 

 

00_1. 간단하게 String 값을 그릴(draw)수 있다.







00_2. 확인할 수 있다.







01. 선(Line)도 그릴수 있다.








02. 여러라인을 이어서 그릴수도 있고 사각형을 그릴수도있고 사각형에 색칠을 할 수도 있다.








03. 색을 변경할 수도 있다.







04. 투명도도 조절할 수 있다.







05. 낮아지면 점점더 옅어지다.







06. 타원형을 그릴수도 있다.







07. 모서리가 둥근 사각형도 그릴 수 있다.







08. 아크(호) 와 아크에 색상을 채우도록 그릴 수도 있다.

 

 

 

 

 

'ETC > 먹방' 카테고리의 다른 글

2019. 08. 12. 월. 점심.  (0) 2019.08.12
2019. 08. 10. 토. 점심.  (0) 2019.08.10
2019. 08. 07. 수. 저녁.  (0) 2019.08.07
2019. 08. 04. 일. 저녁.  (0) 2019.08.05
2019. 08. 01. 목. 저녁.  (0) 2019.08.02

 

GUI에서 탭(Tab) 만드는 방법임.

 

 

 

 

 

 

 

 

00. 기본값은 아래와 같이 만들고 실행한다.







01. 기본 탭이 만들어진 것을 확인할 수 있다.







02. 다음 순서를 따른다.

① 현재 자바 프로젝트에 새폴더(image로 명)를 만든다.

② 이 폴더에 이미지파일(.png)을 가져다 놓는다.

③ 다음과같이 입력하여 JLabel 안에 이미지를 추가한다.

④ 이미지가 정상적으로 들어간 것을 확인할 수 있다.







03. class로 만들어줘서 그 클래스를 불러오는 방법.

 

 

 

 

 

※. 코드

 

 

import java.awt.BorderLayout;

import java.awt.FlowLayout;

 

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTabbedPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

 

 

class MyFrame extends JFrame {

 

public MyFrame()

{

this.setTitle("No Title");

}// MyFrame Constructor

 

 

public MyFrame(String title)

{

createFrame(title);

 

JTabbedPane pane = createTabbedPane();  // 탭에서 메뉴바와 같은 기능

 

this.add(pane, BorderLayout.CENTER); 

 

 

}

 

 

public JTabbedPane createTabbedPane()

{

JTabbedPane pane = new JTabbedPane();

 

pane.addTab("Tab 1", new JLabel("Tab menu 1 "));

pane.addTab("Tab 2", new JLabel( new ImageIcon("image/test.png") ));  // 레이블에 이미지도 가능

pane.addTab("Tab 3", new MyPanel() );

 

return pane;

}

 

 

void createFrame(String title){

 

this.setTitle(title);

this.setSize(500,400);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

this.setLayout( new BorderLayout() );

 

 

this.setVisible(true);

 

}// createFrame Constructor

 

}// MyFrame Class

 

 

class MyPanel extends JPanel{

 

public MyPanel()

{

this.setLayout( new FlowLayout() );

JTextArea display = new JTextArea(15, 40); 

JTextField input = new JTextField(40); // 40열

 

this.add(display);

this.add(input);

 

}

 

}

 

 

public class Test {

 

public static void main(String[] args) {

 

new MyFrame("GUI TEST");

 

}// main

 

}// Main Class

 

 

 

 

 

 

 

 

 



Sponsored By















+ Recent posts