JavaでJTreeのリーフを無効にするにはどうすればよいですか?
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus)
import java.awt.*; import javax.swing.tree.*; import javax.swing.*; public class JTreeLeafNodeDisableTest extends JFrame { private TreeNode treeNode; private JTree tree; public JTreeLeafNodeDisableTest() { setTitle("JTreeLeafNodeDisable Test"); treeNode = new DefaultMutableTreeNode("Country"); tree = new JTree(); tree.setModel(new DefaultTreeModel(treeNode)); tree.setCellRenderer(new CustomDefaultTreeCellRenderer()); add(tree); setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new JTreeLeafNodeDisableTest(); } static class CustomDefaultTreeCellRenderer extends DefaultTreeCellRenderer { @Override public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { boolean enabled = false; sel = enabled; hasFocus = enabled; Component treeCellRendererComponent = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); treeCellRendererComponent.setEnabled(enabled); return treeCellRendererComponent; } } }
出力
-
JavaでJPanelのpaintComponent()メソッドを実装するにはどうすればよいですか?
JPanel は軽量のコンテナであり、見えない コンポーネント Javaで。 JPanelのデフォルトのレイアウトはFlowLayout 。 JPanelを作成したら、他のコンポーネントを JPanelに追加できます。 add()を呼び出してオブジェクトを作成します コンテナから継承されたメソッド クラス。 paintComponent() このメソッドは、 JPanelで何かを描画するために必要です 背景色を描く以外。このメソッドは、 JPanelにすでに存在します スーパーを使用する必要があるようにクラス このメソッドに何かを追加し、グラフィックスを取る宣言 オブジェクト パラメータ
-
JavaでJFrameの最大化ボタンを無効にするにはどうすればよいですか?
JFrame javaxのクラスです。スイング パッケージであり、 java.awt.frameを拡張できます クラス。 トップレベルウィンドウです ボーダーとタイトルバー付き。 JFrame クラスには、カスタマイズに使用できる多くのメソッドがあります。 JFrameのサイズを設定した後 サイズを変更するには、カーソルを隅に置いてドラッグするか、右上隅の閉じる横にあるサイズ変更オプションを押すと、全画面のサイズに最大化されます。これは、サイズ変更がデフォルトでtrueに設定されているために発生します JFrameクラスの場合。 setResizable(false)と同じくらいf