2016-12-12 5 views
2

자바에서 JTable을 사용하고 정수 값에 따라 글꼴을 어떻게 수정할 수 있는지 알고 싶습니다. 나는 현재이 테이블을 가지고 있고 나는 코치에있는 사람들의 수에 따라 행의 글자체를 바꾸고 싶다. 나는 아직도 새로운 스윙이고 나는 이것을 어떻게하는지에 대해 모른다.Jtable 행 글꼴을 굵게 변경하는 방법

What i have so far in my program

링크로를 : 내가 이미 가지고있는이 경우 내가의 아래에있는 이미지 다음 필요한 것이 무엇의 예입니다

if (num_people >17 && num_people<26){ 
    //change row font to bold 
} 

: 내가 좋아하는 뭔가를 할 수있는 솔루션을 필요로 내 현재 코드 : https://gist.github.com/anonymous/015022f7ad55ff9664e2edaea6a58d5a

+1

동일한 대답은 매일 주어지며, 일부에는 두 번 이상 주어집니다. 렌더러를 사용하십시오. * "코치에있는 사람들의 수에 따라 행의 글꼴을 변경하고 싶습니다. 스윙을하기에는 아직 새 것이고 이것을하는 방법에 대해서는 전혀 모르겠습니다"* 왜 당신은 [How to Use Tables] (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html) 자습서를 참조하십시오. –

+0

@AndrewThompson 괭이 테이블 자습서를 사용하여 텍스트를 굵게 만드는 방법을 보여주지 않습니다. 나는 그것을 찾으려고했지만 나는 할 수 없었다. 안녕 당신은 나를 위해 그것을 가리킬 수 –

+0

오, 큰 소리로 외치기 위해 ... 그것은 당신이 다른 것들에 대해 API의 다른 부분을 사용할 수 있어야하기 때문에 모든 가능한 일을 모든 변형을 보여주지 않습니다! 당신은 프로그래밍을 위해 자러 가고 있습니까? –

답변

4
public class CellRenderer extends DefaultTableCellRenderer { 

private static final long serialVersionUID = 1L; 

@Override 
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, 
     int column) { 
    super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 

    if (value>17 value<26) { 
     this.setValue(table.getValueAt(row, column)); 
     this.setFont(this.getFont().deriveFont(Font.BOLD)); 
    } 
    return this; 
} 
} 

이 셀 렌더러가 굵은 글꼴과 같을 것이다 방법이다. 나는 그것을 시험하지 않았다. JTable을 초기화 한 후 table.getColumnModel().getColumn(x).setCellRenderer(new CellRenderer());을 호출하고 해당 글꼴을 적용 할 모든 열에 대해 호출하십시오.

+0

어디에 붙여 넣을까요? –

+1

@SakshamGoyal 새 클래스를 만들고이를'table.getColumnModel(). getColumn (x) .setCellRenderer (new CellRenderer());'와 같이 사용하십시오. 여기서 x는 변경하려는 열입니다. 모든 열이 반복되는 경우 – XtremeBaumer

+0

스윙에 새로운 점을 기억하십시오. 코드를 맨 위에 올려 놓으면 사용하고 사용법을 알려주십시오. 나는 전에 결코 스윙을 사용하지 않았다. 어쩌면 내가 어떻게하는지 알 수 있도록 답을 편집 할 수 있다면. –

3

체크 아웃 Table Row Rendering을 확인하십시오. prepareRenderer(....) 메서드를 재정 의하여 테이블의 지정된 행에 렌더링을 적용하는 방법을 보여줍니다. 이는 각 열에 다른 렌더러를 사용하는 경우 특히 유용합니다.

정말 테이블의 특정 열에 다른 렌더러를 사용해야합니다. 일부 셀은 문자열을 렌더링해야하고 일부는 일반적으로 오른쪽 정렬 된 값을 표시하는 숫자 값을 렌더링해야합니다.

Table Format Renderers을 확인하면 특수한 데이터 서식을 사용하여 사용자 지정 렌더링을보다 쉽게 ​​만들 수 있습니다.

+0

제 코드를보고 제게 보여 주시겠습니까? 나는 그렇게하는 법을 모르는 새로운 스윙이다. –

+1

@SakshamGoyal, 나는 당신에게 작업 코드를 보여줬다. 링크를 따라 작업 코드 예제를 다운로드하십시오. 그들이 작동하는 방법을 이해하고 정확한 요구 사항에 맞는 논리를 사용자 정의하는 데 시간을 할애하십시오. '나는 스윙이 처음이야. '- 당신은 노력함으로써 배우게됩니다. 실제로 원하는대로 코드 예제를 찾는 경우는 거의 없습니다. 따라서 개념을 이해하고 사람들이 예제로 제공하는 코드를 사용자 정의해야합니다. – camickr

관련 문제