2010-04-10 3 views
1

저는 자바 크로스 워드 응용 프로그램을 만들려고하고 있지만 크로스 워드 그리드를 그리는 데 사용할 패키지가 무엇인지 확신하지 못합니다. Graphics2D 등을 사용하여 수동으로 그리드를 그릴 수 있다는 것을 알고 있지만 그리드 사각형에 텍스트 필드가 필요하므로이 방법이 가장 쉬운 방법인지 잘 모르겠습니다.Java Crossword Application - 사용할 패키지는 무엇입니까?

누구나 크로스 워드 퍼즐 그리드를 만드는 것에 관해 제안 할 수 있습니다.

답변

2

난 당신이 그리드 사각형에서 텍스트 필드를 필요로하지만, 단지 모든 그리드 셀에 대한 모든 단일 문자를 적어 생각하지 않는다 ..

은 그냥 사용 부품과 세트를 통해 키보드 스트로크를 잡을 편집 할 수 있도록하려면 크로스 워드 셀은 사용자가 작성한 내용에 따라 다릅니다.

전체 그리드를 저장하는 뒤 2 차원 배열을 사용할 수 있기 때문에이 방법을 사용하면 매우 쉽습니다. 사용자가 정의를 선택하면 첫 번째 셀부터 시작하여 키를 입력 할 때마다 단일 문자를 채우기 시작합니다. 정의의 .. 그리기 루틴은 그리드와 중심 문자를 셀 안쪽에 그릴 수 있어야합니다.

JTableJTable도 작동 할 수 있지만 문제가 너무 커질 것으로 생각합니다. 당신이 전혀 필요하지 않은 많은 것들과 인터페이스 할 수 있습니다 ..

EDIT (덧글) :

나는 이런 식으로 비슷한 일을했다 : 당신이 세포의 배열 셀 클래스

class Cell 
{ 
    boolean isBlank; 
    char value; 
} 

을 가질 수 있습니다 당신은 당신의 그리드를 구하십시오

Cell[][] gamefield = new Cell[15][15]; 

다음 paint() 내부에 쉽게 반복 할 수 있습니다 :

for (int i = 0; i < Scheme.rows; ++i) 
{ 
    for (int j = 0; j < Scheme.cols; ++j) 
    { 
    g2.drawRect(i*32, j*32, 32, 32); 

    if (Scheme.scheme[i][j].isBlank) 
     g2.fillRect(i*32 + 3, j*32 + 3, 32 - 5, 32 - 5); 
    } 
} 

그냥 여전히 스크린 샷 결과가 있기 때문에 something like alt text http://img3.imageshack.us/img3/7374/68514939.png

+0

@Jack 답장을 보내 주셔서 감사합니다. 그러면 그리드를 그릴 때 무엇을 사용합니까? Graphics2D에서 사각형 모음? – Alex

+0

전 가능한 모든 유형의 격자 사각형을 만들고 그리드에로드하기 위해 일부 이미지 편집 소프트웨어를 사용할 수 있다고 생각했습니다. – Alex

+0

당신은 모든 문자를 의미합니까? __graphics.drawString() __을 사용할 수 있습니다. __graphics.getFontMetrics()를 사용하여 문자 너비를 가져 와서 쉽게 배치 할 수 있습니다. stringWidth ('A') __ – Jack

0

아마도 셀에 JTable과 사용자 지정 렌더러를 사용할 수 있습니다. 최소한 간단한 해결책 일 것입니다. 물론 JTable에 익숙해지는 데는 약간의 시간이 걸리지 만 결국에는 매우 간단합니다. 사실

0

JavaFX를 전혀 고려하지 않았습니까? JavaFX를 사용하면 Adobe Photoshop/Inkscape 등을 사용하여 편집 한 벡터/그래픽을 기반으로하는 "장면 그래프"를 만들 수 있습니다.

그렇지 않은 경우 가장 간단한 방법은 JTextField를 확장하여 1 문자 만 유지하고 검정색/또는 편집 불가능하고 사용 불가능한 것을 나타내는 모든 색상. 또한 퍼즐 질문 번호를 나타내는 사용자 지정 테두리를 추가하십시오. 모든 것을 GridLayout에 넣으십시오.

관련 문제