⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 terminalmenuhandlerfull.java

📁 一个非常好的ssh客户端实现
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	    GridBagConstraints gridc = new GridBagConstraints();	    colorsDialog.setLayout(grid);	    gridc.insets = new Insets(4, 4, 4, 4);	    gridc.fill   = GridBagConstraints.NONE;	    gridc.anchor = GridBagConstraints.WEST;	    gridc.gridy = 0;	    gridc.gridwidth = 10;	    lbl = new Label("Foreground color:");	    grid.setConstraints(lbl, gridc);	    colorsDialog.add(lbl);	    gridc.gridy = 1;	    gridc.gridwidth = 6;	    choiceFG = new Choice();	    grid.setConstraints(choiceFG, gridc);	    colorsDialog.add(choiceFG);	    choiceFG.addItemListener(ilC = new Actions(-1));	    textFG = new TextField("", 10);	    grid.setConstraints(textFG, gridc);	    colorsDialog.add(textFG);	    gridc.gridy = 2;	    lbl = new Label("Background color:");	    grid.setConstraints(lbl, gridc);	    colorsDialog.add(lbl);	    gridc.gridy = 3;	    choiceBG = new Choice();	    grid.setConstraints(choiceBG, gridc);	    colorsDialog.add(choiceBG);	    choiceBG.addItemListener(ilC);	    textBG = new TextField("", 10);	    grid.setConstraints(textBG, gridc);	    colorsDialog.add(textBG);	    gridc.gridy = 4;	    lbl = new Label("Cursor color:");	    grid.setConstraints(lbl, gridc);	    colorsDialog.add(lbl);	    gridc.gridy = 5;	    choiceCC = new Choice();	    grid.setConstraints(choiceCC, gridc);	    colorsDialog.add(choiceCC);	    choiceCC.addItemListener(ilC);	    textCC = new TextField("", 10);	    grid.setConstraints(textCC, gridc);	    colorsDialog.add(textCC);	    lblAlertC = new Label("", Label.CENTER);	    gridc.insets = new Insets(0, 0, 0, 0);	    gridc.gridy = 6;	    gridc.fill  = GridBagConstraints.HORIZONTAL;	    gridc.gridwidth = GridBagConstraints.REMAINDER;	    gridc.anchor = GridBagConstraints.CENTER;	    grid.setConstraints(lblAlertC, gridc);	    colorsDialog.add(lblAlertC);	    Panel bp = new Panel(new FlowLayout());	    Button b;	    bp.add(b = new Button("OK"));	    b.addActionListener(new Actions(ACT_COLORS));	    bp.add(b = new Button("Cancel"));	    b.addActionListener(new AWTConvenience.CloseAction(colorsDialog));	    gridc.gridy = 7;	    grid.setConstraints(bp, gridc);	    colorsDialog.add(bp);	    fillChoices();	    colorsDialog.addWindowListener(new AWTConvenience.CloseAdapter(b));	    AWTConvenience.setBackgroundOfChildren(colorsDialog);	    colorsDialog.setResizable(true);	    colorsDialog.pack();	}	initColorSelect(choiceFG, textFG, term.getProperty("fg"));	initColorSelect(choiceBG, textBG, term.getProperty("bg"));	initColorSelect(choiceCC, textCC, term.getProperty("cc"));	updateColors();	lblAlertC.setText("");	AWTConvenience.placeDialog(colorsDialog);	choiceFG.requestFocus();	colorsDialog.setVisible(true);    }    void initColorSelect(Choice c, TextField t, String colStr) {	if(Character.isDigit(colStr.charAt(0))) {	    c.select("custom rgb");	    t.setText(colStr);	} else {	    t.setText("");	    t.setEnabled(false);	    c.select(colStr);	}    }    void checkColorSelect(Choice c, TextField t) {	int cs = c.getSelectedIndex();    	if(cs == 0) {	    boolean en = t.isEnabled();	    if(!en) {		t.setEditable(true);		t.setEnabled(true);		t.setBackground(SystemColor.text);		t.requestFocus();	    }	} else {	    t.setText("");	    t.setEditable(false);	    t.setEnabled(false);	    // on the Mac, Choices can't get keyboard focus	    // so we may need to move focus away from the TextField	    t.setBackground(term.termColors[cs - 1]);	}    }    void updateColors() {	checkColorSelect(choiceFG, textFG);	checkColorSelect(choiceBG, textBG);	checkColorSelect(choiceCC, textCC);    }    String getSelectedColor(Choice c, TextField t) {	String colStr;	if(c.getSelectedIndex() == 0)	    colStr = t.getText();	else	    colStr = c.getSelectedItem();	return colStr;    }    void fillChoices() {	int i;	choiceBG.add("custom rgb");	choiceFG.add("custom rgb");	choiceCC.add("custom rgb");	for(i = 0; i < term.termColorNames.length; i++) {	    choiceBG.add(term.termColorNames[i]);	    choiceFG.add(term.termColorNames[i]);	    choiceCC.add(term.termColorNames[i]);	}    }    Dialog settingsDialog2;    Choice choiceRG, choicePB;    Checkbox cbDEL, cbBS, cbCpOnSel, cbCpWinCR, cbAsciiLD, cbLocPG;    TextField textSL, textSD;    final static String[] rg = { "bottom", "top" };    final static String[] pb = { "middle", "right", "shift+left" };    public final void termSettingsDialog2() {	if(settingsDialog2 == null) {	    settingsDialog2 = new Dialog(term.ownerFrame, "Terminal Misc. Settings", true);	    Label              lbl;	    GridBagLayout      grid  = new GridBagLayout();	    GridBagConstraints gridc = new GridBagConstraints();	    settingsDialog2.setLayout(grid);	    gridc.insets = new Insets(4, 4, 0, 0);	    gridc.fill   = GridBagConstraints.NONE;	    gridc.anchor = GridBagConstraints.WEST;	    gridc.gridwidth = 4;	    gridc.gridy = 0;	    gridc.gridwidth = 4;	    lbl = new Label("Paste button:");	    grid.setConstraints(lbl, gridc);	    settingsDialog2.add(lbl);	    choicePB = AWTConvenience.newChoice(pb);	    grid.setConstraints(choicePB, gridc);	    settingsDialog2.add(choicePB);	    gridc.gridy = 1;	    lbl = new Label("Select delim.:");	    grid.setConstraints(lbl, gridc);	    settingsDialog2.add(lbl);	    textSD = new TextField("", 4);	    grid.setConstraints(textSD, gridc);	    settingsDialog2.add(textSD);	    gridc.gridy = 2;	    gridc.gridwidth = 8;	    gridc.insets = new Insets(4, 16, 0, 0);	    cbCpWinCR = new Checkbox("Copy <cr><nl> line ends");	    grid.setConstraints(cbCpWinCR, gridc);	    settingsDialog2.add(cbCpWinCR);	    gridc.gridy = 3;	    cbCpOnSel = new Checkbox("Copy on select");	    grid.setConstraints(cbCpOnSel, gridc);	    settingsDialog2.add(cbCpOnSel);	    gridc.gridy = 4;	    gridc.gridwidth = 4;	    gridc.insets = new Insets(4, 4, 0, 0);	    lbl = new Label("Resize gravity:");	    grid.setConstraints(lbl, gridc);	    settingsDialog2.add(lbl);	    choiceRG = AWTConvenience.newChoice(rg);	    grid.setConstraints(choiceRG, gridc);	    settingsDialog2.add(choiceRG);	    gridc.gridy = 5;	    gridc.gridwidth = 8;	    gridc.insets = new Insets(4, 16, 0, 0);	    cbBS = new Checkbox("Backspace sends Delete");	    grid.setConstraints(cbBS, gridc);	    settingsDialog2.add(cbBS);	    gridc.gridy = 6;	    cbDEL = new Checkbox("Delete sends Backspace");	    grid.setConstraints(cbDEL, gridc);	    settingsDialog2.add(cbDEL);	    gridc.gridy = 7;	    cbLocPG = new Checkbox("Local PgUp/PgDn");	    grid.setConstraints(cbLocPG, gridc);	    settingsDialog2.add(cbLocPG);	    gridc.gridy = 8;	    cbAsciiLD = new Checkbox("Use ASCII for line draw");	    grid.setConstraints(cbAsciiLD, gridc);	    settingsDialog2.add(cbAsciiLD);	    Panel bp = new Panel(new FlowLayout());	    Button b;	    bp.add(b = new Button("OK"));	    b.addActionListener(new Actions(ACT_MISC));	    bp.add(b = new Button("Cancel"));	    b.addActionListener(new AWTConvenience.CloseAction(settingsDialog2));	    gridc.gridy = 9;	    gridc.fill  = GridBagConstraints.HORIZONTAL;	    gridc.gridwidth = GridBagConstraints.REMAINDER;	    gridc.anchor = GridBagConstraints.CENTER;	    grid.setConstraints(bp, gridc);	    settingsDialog2.add(bp);	    settingsDialog2.addWindowListener(new AWTConvenience.CloseAdapter(b));	    AWTConvenience.setBackgroundOfChildren(settingsDialog2);	    settingsDialog2.setResizable(true);	    settingsDialog2.pack();	}	choicePB.select(term.getProperty("pb"));	String sdSet = term.getProperty("sd");	if((sdSet.charAt(0) == '"' && sdSet.charAt(sdSet.length() - 1) == '"')) {	    sdSet = sdSet.substring(1, sdSet.length() - 1);	}	textSD.setText(sdSet);	cbCpOnSel.setState(Boolean.valueOf(term.getProperty("cs")).booleanValue());	cbCpWinCR.setState(Boolean.valueOf(term.getProperty("sc")).booleanValue());	choiceRG.select(term.getProperty("rg"));	if(term.getProperty("bs").equals("DEL")) {	    cbBS.setState(true);	} else {	    cbBS.setState(false);	}	if(term.getProperty("de").equals("BS")) {	    cbDEL.setState(true);	} else {	    cbDEL.setState(false);	}	cbAsciiLD.setState(Boolean.valueOf(term.getProperty("ad")).booleanValue());	cbLocPG.setState(Boolean.valueOf(term.getProperty("lp")).booleanValue());	AWTConvenience.placeDialog(settingsDialog2);	choiceRG.requestFocus();	settingsDialog2.setVisible(true);    }    Dialog     findDialog = null;    TextField  findText;    Label      label;    Checkbox   dirCheck, caseCheck;    Button     findBut, cancBut;    public final void findDialog() {	if(findDialog == null) {	    findDialog = new Dialog(term.ownerFrame, titleName + " - Find", false);	    GridBagLayout      grid  = new GridBagLayout();	    GridBagConstraints gridc = new GridBagConstraints();	    findDialog.setLayout(grid);	    gridc.fill   = GridBagConstraints.NONE;	    gridc.anchor = GridBagConstraints.WEST;	    gridc.gridwidth = 1;	    gridc.gridy = 0;	    label = new Label("Find:");	    grid.setConstraints(label, gridc);	    findDialog.add(label);	    gridc.fill = GridBagConstraints.HORIZONTAL;	    gridc.gridwidth = 5;	    findText = new TextField("", 26);	    grid.setConstraints(findText, gridc);	    findDialog.add(findText);	    gridc.gridwidth = 4;	    gridc.ipadx = 4;	    gridc.ipady = 4;	    gridc.insets = new Insets(6, 3, 3, 6);	    findBut = new Button("Find");	    grid.setConstraints(findBut, gridc);	    findDialog.add(findBut);	    gridc.insets = new Insets(0, 0, 0, 0);	    gridc.ipadx = 0;	    gridc.ipady = 0;	    gridc.gridwidth = 3;	    gridc.gridy = 1;	    gridc.fill   = GridBagConstraints.NONE;	    caseCheck = new Checkbox("Case sensitive");	    grid.setConstraints(caseCheck, gridc);	    findDialog.add(caseCheck);      	    dirCheck = new Checkbox("Find backwards");	    grid.setConstraints(dirCheck, gridc);	    findDialog.add(dirCheck);	    gridc.gridwidth = 4;	    gridc.ipadx = 4;	    gridc.ipady = 4;	    gridc.insets = new Insets(3, 3, 6, 6);	    gridc.fill = GridBagConstraints.HORIZONTAL;	    cancBut = new Button("Cancel");	    grid.setConstraints(cancBut, gridc);	    findDialog.add(cancBut);	    cancBut.addActionListener(new Actions(ACT_FIND_CANCEL));	    findBut.addActionListener(new Actions(ACT_FIND));	    findDialog.addWindowListener(new AWTConvenience.CloseAdapter(cancBut));	    AWTConvenience.setBackgroundOfChildren(findDialog);	    AWTConvenience.setKeyListenerOfChildren(findDialog,						    new AWTConvenience.OKCancelAdapter(findBut, cancBut),						    null);	    findDialog.setResizable(true);	    findDialog.pack();	}	AWTConvenience.placeDialog(findDialog);	findText.requestFocus();	findDialog.setVisible(true);    }    final static boolean doMatch(String findStr, char firstChar, char[] chars, int idx,				 boolean caseSens, int len) {	String cmpStr;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -