문자열을 웃는 얼굴로 대체하는 자바 스마일리

손님

채팅 프로그램을 작성 중입니다. 사용자가 smiley (jbutton)를 클릭하면 텍스트 창에 인쇄되는 스마일이있는 모형 GUI를 디자인했습니다. 사용자가 ":)"를 입력하고 보낼 때 insertIcon () 메서드를 사용하여 문자열 대신 웃는 얼굴을 삽입하는 고급 기능을 추가했습니다. 내가 가진 문제는 여러 번이 아닌 한 번만 웃는 얼굴을 인쇄한다는 것입니다. 그래서 "Hi :) My name is Jack :)"를 입력하면 아이콘이 한 번만 삽입됩니다. 어떤 제안?

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SmileyTesterGUI extends JFrame {

    JPanel main = new JPanel();
    JPanel south = new JPanel();
    JPanel messageCenter = new JPanel();
    JPanel smileysNorth = new JPanel();
    JTextField text;
    JTextPane tPane;
    Icon happy;
    Icon smile;
    Icon tongue;
    Icon veryHappy;
    Icon wink;
    Icon laugh;
    Icon sad;
    Icon verySad;
    Icon cry;

    public SmileyTesterGUI() {
        super("Smileys");
        add(main);
        main.setLayout(new BorderLayout());
        main.add(south, BorderLayout.SOUTH);
        south.setLayout(new BorderLayout());
        south.add(messageCenter, BorderLayout.CENTER);
        south.add(smileysNorth, BorderLayout.NORTH);

        // textpane panel
        tPane = new JTextPane();
        JScrollPane sPane = new JScrollPane(tPane);
        main.add(sPane);
        tPane.setEditable(false);

        // smileysPanel
        smileysNorth.setLayout(new GridLayout(1, 0));
        JButton smiley1 = new JButton();
        JButton smiley2 = new JButton();
        JButton smiley3 = new JButton();
        JButton smiley4 = new JButton();
        JButton smiley5 = new JButton();
        JButton smiley6 = new JButton();
        JButton smiley7 = new JButton();
        JButton smiley8 = new JButton();
        JButton smiley9 = new JButton();
        smileysNorth.add(smiley1);
        smileysNorth.add(smiley2);
        smileysNorth.add(smiley3);
        smileysNorth.add(smiley4);
        smileysNorth.add(smiley5);
        smileysNorth.add(smiley6);
        smileysNorth.add(smiley7);
        smileysNorth.add(smiley8);
        smileysNorth.add(smiley9);

        // set smileys(icon) to each button - pathed from personal directory
        happy = new ImageIcon(getClass().getResource("smileys/Smile1.png"));
        smiley1.setIcon(happy);
        smile = new ImageIcon(getClass().getResource("smileys/Smile2.png"));
        smiley2.setIcon(smile);
        tongue = new ImageIcon(getClass().getResource("smileys/Smile3.png"));
        smiley3.setIcon(tongue);
        veryHappy = new ImageIcon(getClass().getResource("smileys/Smile4.png"));
        smiley4.setIcon(veryHappy);
        wink = new ImageIcon(getClass().getResource("smileys/Smile5.png"));
        smiley5.setIcon(wink);
        laugh = new ImageIcon(getClass().getResource("smileys/Smile6.png"));
        smiley6.setIcon(laugh);
        sad = new ImageIcon(getClass().getResource("smileys/Smile7.png"));
        smiley7.setIcon(sad);
        verySad = new ImageIcon(getClass().getResource("smileys/Smile8.png"));
        smiley8.setIcon(verySad);
        cry = new ImageIcon(getClass().getResource("smileys/Smile9.png"));
        smiley9.setIcon(cry);

        // smileys print on the textpane

        smiley1.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                tPane.insertIcon(new ImageIcon(getClass().getResource(
                        "smileys/Smile1.png")));
            }
        });
        smiley2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                tPane.insertIcon(new ImageIcon(getClass().getResource(
                        "smileys/Smile2.png")));
            }
        });
        smiley3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                tPane.insertIcon(new ImageIcon(getClass().getResource(
                        "smileys/Smile3.png")));
            }
        });
        smiley4.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                tPane.insertIcon(new ImageIcon(getClass().getResource(
                        "smileys/Smile4.png")));
            }
        });
        smiley5.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                tPane.insertIcon(new ImageIcon(getClass().getResource(
                        "smileys/Smile5.png")));
            }
        });
        smiley6.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                tPane.insertIcon(new ImageIcon(getClass().getResource(
                        "smileys/Smile6.png")));
            }
        });
        smiley7.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                tPane.insertIcon(new ImageIcon(getClass().getResource(
                        "smileys/Smile7.png")));
            }
        });
        smiley8.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                tPane.insertIcon(new ImageIcon(getClass().getResource(
                        "smileys/Smile8.png")));
            }
        });
        smiley9.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                tPane.insertIcon(new ImageIcon(getClass().getResource(
                        "smileys/Smile9.png")));
            }
        });

        // messagePanel
        messageCenter.setLayout(new BorderLayout());
        text = new JTextField();
        JButton send = new JButton("Send");
        messageCenter.add(text);
        messageCenter.add(send, BorderLayout.EAST);

        text.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                sendMessage();
            }
        });

        send.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                sendMessage();
            }
        });

        setLocation(500, 0);
        setSize(600, 250);
    }

    public void sendMessage() {
        String a = text.getText();
        // tPane.setText(a);
        // tPane.getText();

        if (a.equals(":D")) {
            tPane.insertIcon(veryHappy);
        } else if (a.equals(":)")) {
            tPane.insertIcon(smile);
        } else if (a.equals(":(")) {
            tPane.insertIcon(sad);
        } else if (a.equalsIgnoreCase(":P")) {
            tPane.insertIcon(tongue);
        } else if (a.equals(";)")) {
            tPane.insertIcon(wink);
        }

        text.setText(null);
        text.requestFocus();

    }


    public static void main(String[] args) {
        new SmileyTesterGUI().setVisible(true);

    }

}
StanislavL

insertIcon()사용 방법 JTextPane선택 (가장 간단한 경우 캐럿 위치). 따라서 귀하의 경우 항상 아이콘을 한 번만 바꿉니다.

귀하의 endMessage()":)"메시지에서 여러 번 발생하는지 확인하지 않습니다 . while 루프를 사용하여 인덱스를 가져 ":)"오고 각 인덱스에 대해 선택하고 사용하십시오.insertIcon()

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

문자 웃는 얼굴이 이메일에서 문자 J로 표시됩니다.

분류에서Dev

C ++ 문자열은 웃는 얼굴을 출력합니다.

분류에서Dev

WPF 메시지의 웃는 얼굴을 웃는 아이콘으로 바꾸기

분류에서Dev

PHP는 img 태그로 웃는 얼굴을 대체

분류에서Dev

자바 프로그램을 사용하여 하얀 웃는 얼굴과 같은 유니 코드 문자를 로그 파일에 인쇄하는 방법이 있습니까?

분류에서Dev

텍스트 파일을 json 문자열로 변환하는 방법 (줄 바꿈을 "\ n"으로 대체)

분류에서Dev

자바 및 하스 캐스케이드 얼굴 및 입 감지-코로 입

분류에서Dev

리눅스는 문자열을 다른 문자열로 대체합니다.

분류에서Dev

문자열의 "\ n"문자열을 개행 문자로 대체하는 sed 스크립트

분류에서Dev

영상 채팅을 사용할 때 자동으로 내 얼굴을 가리는 방법은 무엇입니까?

분류에서Dev

일부 문자가 다른 문자로 대체되는 새 문자열을 반환하려고합니다.

분류에서Dev

따옴표 사이의 문자열을 대체하는 자바 스크립트 문자열 정규식

분류에서Dev

웃는 얼굴로 터미널 bash 프롬프트를 어떻게 사용자 정의 할 수 있습니까?

분류에서Dev

파일에서 문자열을 가져 오는 동안 파일에서 문자열을 문자열로 대체

분류에서Dev

눈, 입, 귀로 얼굴 인식 .. 자바 스크립트로

분류에서Dev

일치하는 문자열을 기반으로 파일의 기호 대체

분류에서Dev

파일 집합의 문자열을 다른 문자열로 대체하는 방법은 무엇입니까?

분류에서Dev

대체 내부의 공백 대체는 일치하는 문자열을 공백으로 변경합니다.

분류에서Dev

스크립트 태그에서 HTML을 사용하여 문자열을 자바 스크립트로 대체하는 방법

분류에서Dev

모든 부분 문자열을 다른 문자열 자바 스크립트로 바꾸는 방법

분류에서Dev

자바 스크립트는 여러 줄 문자열을 여러 줄 문자열로 바꿉니다.

분류에서Dev

자바 : 여러 문자열 자리를 대체하는 가장 빠른 방법

분류에서Dev

랜드 마크 포인트로 얼굴을 등록하는 방법

분류에서Dev

'% 20'등을 문자열 자바 스크립트로 변환하는 방법

분류에서Dev

자바는 문자열을 숫자 배열로 변환

분류에서Dev

마이너스 문자를 포함하는 배열의 모든 문자열을 다른 문자열로 바꿉니다.

분류에서Dev

자바 스크립트에서 객체 속성 문자열을 정수로 변환하는 방법

분류에서Dev

"\"문자로 문자열을 검색하고 대체하는 방법

분류에서Dev

일치하는 문자열로 바꾸기위한 REGEXREPLACE의 대체는 무엇입니까?

Related 관련 기사

  1. 1

    문자 웃는 얼굴이 이메일에서 문자 J로 표시됩니다.

  2. 2

    C ++ 문자열은 웃는 얼굴을 출력합니다.

  3. 3

    WPF 메시지의 웃는 얼굴을 웃는 아이콘으로 바꾸기

  4. 4

    PHP는 img 태그로 웃는 얼굴을 대체

  5. 5

    자바 프로그램을 사용하여 하얀 웃는 얼굴과 같은 유니 코드 문자를 로그 파일에 인쇄하는 방법이 있습니까?

  6. 6

    텍스트 파일을 json 문자열로 변환하는 방법 (줄 바꿈을 "\ n"으로 대체)

  7. 7

    자바 및 하스 캐스케이드 얼굴 및 입 감지-코로 입

  8. 8

    리눅스는 문자열을 다른 문자열로 대체합니다.

  9. 9

    문자열의 "\ n"문자열을 개행 문자로 대체하는 sed 스크립트

  10. 10

    영상 채팅을 사용할 때 자동으로 내 얼굴을 가리는 방법은 무엇입니까?

  11. 11

    일부 문자가 다른 문자로 대체되는 새 문자열을 반환하려고합니다.

  12. 12

    따옴표 사이의 문자열을 대체하는 자바 스크립트 문자열 정규식

  13. 13

    웃는 얼굴로 터미널 bash 프롬프트를 어떻게 사용자 정의 할 수 있습니까?

  14. 14

    파일에서 문자열을 가져 오는 동안 파일에서 문자열을 문자열로 대체

  15. 15

    눈, 입, 귀로 얼굴 인식 .. 자바 스크립트로

  16. 16

    일치하는 문자열을 기반으로 파일의 기호 대체

  17. 17

    파일 집합의 문자열을 다른 문자열로 대체하는 방법은 무엇입니까?

  18. 18

    대체 내부의 공백 대체는 일치하는 문자열을 공백으로 변경합니다.

  19. 19

    스크립트 태그에서 HTML을 사용하여 문자열을 자바 스크립트로 대체하는 방법

  20. 20

    모든 부분 문자열을 다른 문자열 자바 스크립트로 바꾸는 방법

  21. 21

    자바 스크립트는 여러 줄 문자열을 여러 줄 문자열로 바꿉니다.

  22. 22

    자바 : 여러 문자열 자리를 대체하는 가장 빠른 방법

  23. 23

    랜드 마크 포인트로 얼굴을 등록하는 방법

  24. 24

    '% 20'등을 문자열 자바 스크립트로 변환하는 방법

  25. 25

    자바는 문자열을 숫자 배열로 변환

  26. 26

    마이너스 문자를 포함하는 배열의 모든 문자열을 다른 문자열로 바꿉니다.

  27. 27

    자바 스크립트에서 객체 속성 문자열을 정수로 변환하는 방법

  28. 28

    "\"문자로 문자열을 검색하고 대체하는 방법

  29. 29

    일치하는 문자열로 바꾸기위한 REGEXREPLACE의 대체는 무엇입니까?

뜨겁다태그

보관