精华内容
下载资源
问答
  • Chemistry Development Kit (CDK)数据资源是一个主要获取化学分子属性信息的JAVA库。其官方主页:https://cdk.github.io/。同时其提供了相对应的JAVA接口供各用户使用。今天就给大家介绍下在R语言中是如何利用其接口...

    f1edd4823603ac95ac58dac4b3f8ba4c.gif

    我们在前面曾讲到R语言如何读取SDF文件,今天给大家介绍下,读取后如何获取分子的相关信息。Chemistry Development Kit (CDK)数据资源是一个主要获取化学分子属性信息的JAVA库。其官方主页:https://cdk.github.io/。

    125a99c8839784867a0cae4448d87f88.png

    同时其提供了相对应的JAVA接口供各用户使用。今天就给大家介绍下在R语言中是如何利用其接口进行相应的化合物数据获取的。

    首先,我们看下需要安装的包:

    install.packages('rcdk')

    接下来我们直接通过实例来看下此包的使用:

    1. 数据的输入与输出

    ##数据载入Dir1=system.file("molfiles","kegg.sdf", package = "rcdk")Dir2=system.file("molfiles","dhfr00008.sdf", package = "rcdk")mols 

    d04e21e52813301050a7d59b29f58462.png

    当单个分子sdf文件太大时,我们为了防止内存溢出,那么我们可以遍历读取:

    ##遍历读取数据iter type=while(iter$hasNext()) { mol$nextElem()set.property(mol, 'cdk:Title', 'A')print(get.property(mol,"cdk:Title"))}
    ##单个分子的解析读取,当然也可以直接读取多个分子smile 'c1ccccc1CC(=O)C(N)CC1CCCCOC1'mol 1]]get.smiles(mol)# get.smiles(mols[[1]])
    ##多个SMILE结构数据的读取options("java.parameters"=c("-Xmx4000m"))library(rcdk)for (smile in smiles) {    m   ## perform operations on this molecule     .jcall("java/lang/System","V","gc")   gc()}
    ##分子的输出,如果参数together=FALSE,则挨个输出分子到sdf文件write.molecules(mols,filename='mymols.sdf')

    2. 分子结构的获取

    ##SMILE转化为2D坐标m 'CCC')[[m 2d.coordinates(m)
    ##分子信息:绝对立体配置、增强立体功能、原子标签、波动键索引、环状立体键信息和反应片段级分组信息输出get.smiles(m,smiles.flavors(c('CxSmiles')))
    ##SMILE坐标信息获取get.smiles(m,smiles.flavors(c('CxCoordinates')))

    3. 分子结构的可视化

    ###坐标系中添加分子结构img 2d(parse.smiles(plot(1:10, 1:10, pch=19)rasterImage(img, 1,6, 5,10)

    97286022f6ef7b71cd445e8b24910e39.png

    4. 分子构造的解析

    ##原子骨架的获取mol 'c1ccccc1C(Cl)(Br)c1ccccc1')[[atoms get.atoms(mol)bonds get.bonds(mol)cat('No. of atoms =', length(atoms), '\n')

    5. 分子描述信息(此包的核心部分)

    ##列举此包可获取的分子描述信息属性,包括了拓扑,构造,几何,电子和混合形式。dc 
    ##获取单个描述的具体信息名称dn <- get.desc.names(dc[4])

    50ee7d2e3c084a0e5acd3d50206e134d.png

    ###计算描述中的各属性值aDesc <- eval.desc(mol, dn[4])allDescs <- eval.desc(mol, dn)

    c30e0f24b451eb806840a33d670f9328.png

    ##获取所有描述属性的集合descNames <-unique(unlist(sapply(get.desc.categories(), get.desc.names)))
    ###通过描述信息集合获取对应的分子属性data(bpdata)mols 1])descNames  'org.openscience.cdk.qsar.descriptors.molecular.KierHallSmartsDescriptor', 'org.openscience.cdk.qsar.descriptors.molecular.APolDescriptor', 'org.openscience.cdk.qsar.descriptors.molecular.HBondDonorCountDescriptor')descs eval.desc(mols, descNames)

    d4e7337c1043631c10abe4c35b334fc0.png

    得到上面的矩阵,那么我们就可以进行下面的建模型,分析了。此包也给出了两个例子,我们直接看下:

    1. 线性回归模型的构建

    ###数据清洗descs 2,descs descs[, !r2 which(r2 r2[ descs descs[, -
    ###构建模型model ~ khs.sCH3 + khs.sF +apol + nHBDsummary(model)

    9d9f1513221ad3192412959ee64f0fc5.png

    ##可视化模型预测结果plot(bpdata$BP, predict(model, descs),    xlab="Observed BP", ylab="Predicted BP",    pch=19, xlim=c(100, 700), ylim=c(100, 700))abline(0,1, col='red')

    d56e552a26b0c7b9961d4a0349f9f945.png

    2. 基于分子指纹的分层聚类分析,首先看下分子指纹的类型:

    5f5ace49353749d2075ce1877c88219d.png

    ##获取分子指纹,此处类型为circulardata(bpdata)mols fps type=
    ##计算距离矩阵fp.sim 'tanimoto')fp.dist 1 - fp.sim
    ##可视化结果cls as.dist(fp.dist))plot(cls, main='A Clustering of the BPdataset', labels=FALSE)

    20578555b129d8876856a6b543775448.png

    当然,分子指纹还有另外一个功能,那就是分子检索,通过指纹的相似的进行分子的检索,我们直接看下实例:

    query.mol 'CC(=O)')[[target.mols 1])query.fp get.fingerprint(query.mol,target.fps get.fingerprint, sims do.call(rbind,lapply(target.fps,    fingerprint::distance,    fp2=query.fp, method='tanimoto')))subset(sims, sim >= 0.3)

    22a882d74461afdff3cf1c5dbc084a94.png

    欢迎大家学习交流!

    759004ef39114edd86876ab2c6f2115c.png

    708d3cf73fcaefa1ad530d66cbbd4b7d.png

    展开全文
  • Java 获取鼠标点击坐标

    万次阅读 2016-05-13 16:05:46
    Java 窗体的使用,获取鼠标右键点击的坐标,其中使用了匿名内部类import java.awt.FlowLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent;import javax.swing.JFrame; import javax....

    Java 窗体的使用,获取鼠标右键点击的坐标,其中使用了匿名内部类

    import java.awt.FlowLayout;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    
    @SuppressWarnings("serial")
    public class PositionOfMouse extends JFrame{
        private JLabel label;
        public PositionOfMouse(){
            super("测试程序");//建立新窗体
            this.setSize(400,300);//设置窗体的宽和高
            this.setVisible(true);//设置窗体可见
            this.setLayout(new FlowLayout(FlowLayout.CENTER));//框架流布局且居中对齐
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点击关闭按钮时的默认操作
            JLabel label = new JLabel("此处显示鼠标右键点击的坐标");
            this.add(label); // 将标签放入窗体
    
            this.addMouseListener(new MouseAdapter(){  //匿名内部类,鼠标事件
                public void mouseClicked(MouseEvent e){   //鼠标完成点击事件
                    if(e.getButton() == MouseEvent.BUTTON3){ //e.getButton就会返回点鼠标的那个键,左键还是右健,3代表右键
                        int x = e.getX();  //得到鼠标x坐标
                        int y = e.getY();  //得到鼠标y坐标
                        String banner = "鼠标当前点击位置的坐标是" + x + "," + y;
                        label.setText(banner);  //修改标签内容
                    }
                }
            });
        }
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            new PositionOfMouse();
        }
    
    }
    
    展开全文
  • Java窗体Jframe上获取鼠标点击的坐标,其中使用了匿名内部类,实例代码非常简单易懂,大家可以学习一下
  • Lete乐特自制实用工具(C# - .NET Framework4.5) ...Java窗体程序的优缺点 优点: 可跨平台 缺点: Java程序依赖JVM(Java虚拟机) 由于JVM是存储在jre下的(而Java程序又依赖JVM(Java虚拟机))j...

    Lete乐特自制实用工具(C# - .NET Framework4.5)


    由于上次使用Java编写的实用工具https://lete114.github.io/article/986f7d9c.html

    Java写窗体程序的优缺点

    优点:

    1. 可跨平台

    缺点:

    1. Java程序依赖JVM(Java虚拟机)
    2. 由于JVM是存储在jre下的(而Java程序又依赖JVM(Java虚拟机))jre占用内存高达200MB

    C#写窗体程序的优缺点

    由于Java程序不便于携带,这次我使用C#编写

    优点:

    1. 体积小(小于1MB)
    2. 便于携带
    3. 便于编写(随意拖动按钮图标等)

    缺点:

    1. C#依赖 .NET Framework
      (这个不要紧,大多数电脑都会装有 .NET Framework,玩游戏的应该需要装游戏运行库,运行库里就包含有 .NET Framework)

    FormMain.cs

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Delete
    {
        public partial class FormMain : Form
        {
            public FormMain()
            {
                InitializeComponent();
            }
            [DllImport("user32.dll")]//取设备场景 
            private static extern IntPtr GetDC(IntPtr hwnd);//返回设备场景句柄 
            [DllImport("gdi32.dll")]//取指定点颜色 
            private static extern int GetPixel(IntPtr hdc, Point p);
    
    
    
            // 单击乐特
            private void lete_Click(object sender, EventArgs e)
            {
                System.Diagnostics.Process.Start("http://lete114.github.io/");
            }
            // 窗体加载事件
            private void LeteTools_Load(object sender, EventArgs e)
            {
                this.tm.Enabled = true;
                this.tm.Interval = 1;//timer控件的执行频率
            }
    
            //计时器
            private void tm_Tick(object sender, EventArgs e)
            {
                // 计时器
                Timer tim = new Timer();
                tim.Interval = 1;
                tim.Tick += delegate
                {
                    //获取RGB鼠标当前位置颜色
                    Point p = new Point(MousePosition.X, MousePosition.Y);//取置顶点坐标 
                    IntPtr hdc = GetDC(new IntPtr(0));//取到设备场景(0就是全屏的设备场景) 
                    int c = GetPixel(hdc, p);//取指定点颜色 
                    int r = (c & 0xFF);//转换R 
                    int g = (c & 0xFF00) / 256;//转换G 
                    int b = (c & 0xFF0000) / 65536;//转换B 
                    //RGB.BackColor = Color.FromArgb(r, g, b);
                    lblR255.Text = r.ToString();
                    lblG255.Text = g.ToString();
                    lblB255.Text = b.ToString();
    
    
                    // 用主类实例化,调用convertRGBToHex方法,传入RGB
                    FormMain lt = new FormMain();
                    lblVHEX.Text = lt.convertRGBToHex(r, g, b);
    
                    // 鼠标坐标
                    //方法1:
                    //lblVX.Text = Cursor.Position.X.ToString();
                    //lblVY.Text = Cursor.Position.Y.ToString();
                    //方法2:
                    lblVX.Text = Control.MousePosition.X.ToString();
                    lblVY.Text = Control.MousePosition.Y.ToString();
    
                };
                tim.Start();
    
            }
    
    
            // 计算HEX值
            public String convertRGBToHex(int r, int g, int b)
            {
                String rFString, rSString, gFString, gSString, bFString, bSString, result;
                int red, green, blue;
                int rred, rgreen, rblue;
                red = r / 16;
                rred = r % 16;
                if (red == 10) rFString = "A";
                else if (red == 11) rFString = "B";
                else if (red == 12) rFString = "C";
                else if (red == 13) rFString = "D";
                else if (red == 14) rFString = "E";
                else if (red == 15) rFString = "F";
                else rFString = red.ToString();
    
                if (rred == 10) rSString = "A";
                else if (rred == 11) rSString = "B";
                else if (rred == 12) rSString = "C";
                else if (rred == 13) rSString = "D";
                else if (rred == 14) rSString = "E";
                else if (rred == 15) rSString = "F";
                else rSString = rred.ToString();
    
                rFString = rFString + rSString;
    
                green = g / 16;
                rgreen = g % 16;
    
                if (green == 10) gFString = "A";
                else if (green == 11) gFString = "B";
                else if (green == 12) gFString = "C";
                else if (green == 13) gFString = "D";
                else if (green == 14) gFString = "E";
                else if (green == 15) gFString = "F";
                else gFString = green.ToString();
    
                if (rgreen == 10) gSString = "A";
                else if (rgreen == 11) gSString = "B";
                else if (rgreen == 12) gSString = "C";
                else if (rgreen == 13) gSString = "D";
                else if (rgreen == 14) gSString = "E";
                else if (rgreen == 15) gSString = "F";
                else gSString = rgreen.ToString();
    
                gFString = gFString + gSString;
    
                blue = b / 16;
                rblue = b % 16;
    
                if (blue == 10) bFString = "A";
                else if (blue == 11) bFString = "B";
                else if (blue == 12) bFString = "C";
                else if (blue == 13) bFString = "D";
                else if (blue == 14) bFString = "E";
                else if (blue == 15) bFString = "F";
                else bFString = blue.ToString();
    
                if (rblue == 10) bSString = "A";
                else if (rblue == 11) bSString = "B";
                else if (rblue == 12) bSString = "C";
                else if (rblue == 13) bSString = "D";
                else if (rblue == 14) bSString = "E";
                else if (rblue == 15) bSString = "F";
                else bSString = rblue.ToString();
                bFString = bFString + bSString;
                result = "#" + rFString + gFString + bFString;
                return result;
    
            }
    
            // 进入删除窗体
            private void Zhu_Click(object sender, EventArgs e)
            {
                Delete m = new Delete();
                m.Show();
            }
        }
    }
    
    

    Delete.cs

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Delete
    {
    
        public partial class Delete : Form
        {
            public Delete()
            {
                InitializeComponent();
            }
    
            // 按钮
            private void btnDelete_Click(object sender, EventArgs e)
            {
                // 获取路径
                string str = txtPath.Text;
                str.Replace("\\", "/");
                if (str.Equals(""))
                {
                    MessageBox.Show("路径不能为空!", "提示");
                }
                else if (str.Equals("Q:\\") || str.Equals("W:\\") || str.Equals("E:\\") || str.Equals("R:\\") || str.Equals("T:\\") || str.Equals("Y:\\") || str.Equals("U:\\") || str.Equals("I:\\") || str.Equals("O:\\") || str.Equals("P:\\")|| str.Equals("A:\\") || str.Equals("S:\\") || str.Equals("D:\\") || str.Equals("G:\\") || str.Equals("H:\\")|| str.Equals("J:\\") || str.Equals("K:\\") || str.Equals("L:\\") || str.Equals("Z:\\") || str.Equals("X:\\")|| str.Equals("C:\\") || str.Equals("C:\\") || str.Equals("V:\\") || str.Equals("B:\\") || str.Equals("N:\\")|| str.Equals("M:\\"))
                {
                    MessageBox.Show("路径不能为盘符!", "提示");
                }
                else
                {
                    getPath(str);
                }
            }
    
            // 窗体加载事件
            private void Main_Load(object sender, EventArgs e)
            {
    
            }
            // 浏览
            private void btnLL_Click(object sender, EventArgs e)
            {
                FolderBrowserDialog f = new FolderBrowserDialog();
                if (f.ShowDialog() == DialogResult.OK)
                {
                    String DirPath = f.SelectedPath;
                    this.txtPath.Text = DirPath;//G:\新建文件夹
                }
            }
    
            static List<string> list = new List<string>();//定义list变量
            public List<string> getPath(string path)
            {
                // 获取子目录
                DirectoryInfo dir = new DirectoryInfo(path);
                FileInfo[] fil = dir.GetFiles();
                DirectoryInfo[] dii = dir.GetDirectories();
                foreach (FileInfo f in fil)
                {
                    list.Add(f.FullName);//添加文件的路径到列表
                }
                //获取子文件夹内的文件列表,递归遍历
                foreach (DirectoryInfo d in dii)
                {
                    getPath(d.FullName);
                    list.Add(d.FullName);//添加文件夹的路径到列表
                }
    
                // 删除空目录
                /// 删除掉空文件夹
                /// 所有没有子“文件系统”的都将被删除
                DirectoryInfo[] subdirs = dir.GetDirectories("*.*", SearchOption.AllDirectories);
                foreach (DirectoryInfo subdir in subdirs)
                {
                    FileSystemInfo[] subFiles = subdir.GetFileSystemInfos();
                    if (subFiles.Count() == 0)
                    {
                        subdir.Delete();
                    }
                }
                return list;
            }
        }
    }
    
    

    Program.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Delete
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new FormMain());
            }
        }
    }
    
    

    下载地址

    这里顺便推荐个云盘曲奇云盘https://quqi.com用了有几个月了还不错

    同样和百度云一样送2T空间,晚了可能就没有了,关键是不限速

    曲奇云盘:https://quqi.gblhgk.com/s/47889/mAxdzF3Auy0rAN0t

    Github:https://github.com/lete114/C.Tools

    Gitee:https://github.com/lete114/C.Tools

    Github

    Gitee


    展开全文
  • Lete乐特自制实用工具(C# - .NET Framework4.5) 由于上次使用Java编写的实用工具https://lete114.github.io/article/986f7d9c.htmlJava窗体程序的优缺点 优点:可跨平台 缺点:Java程序依赖JVM(Java虚拟机)由于JVM...

    Lete乐特自制实用工具(C# - .NET Framework4.5)

    f1b297aef46690efd4ed6d0ca128fb75.png

    由于上次使用Java编写的实用工具https://lete114.github.io/article/986f7d9c.html

    Java写窗体程序的优缺点

    优点:
    1. 可跨平台


    缺点:

    1. Java程序依赖JVM(Java虚拟机)
    2. 由于JVM是存储在jre下的(而Java程序又依赖JVM(Java虚拟机))jre占用内存高达200MB

    C#写窗体程序的优缺点

    由于Java程序不便于携带,这次我使用C#编写

    优点:
    1. 体积小(小于1MB)
    2. 便于携带
    3. 便于编写(随意拖动按钮图标等)


    缺点:

    1. C#依赖 .NET Framework
      (这个不要紧,大多数电脑都会装有 .NET Framework,玩游戏的应该需要装游戏运行库,运行库里就包含有 .NET Framework)

    FormMain.cs

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Delete
    {
        public partial class FormMain : Form
        {
            public FormMain()
            {
                InitializeComponent();
            }
            [DllImport("user32.dll")]//取设备场景 
            private static extern IntPtr GetDC(IntPtr hwnd);//返回设备场景句柄 
            [DllImport("gdi32.dll")]//取指定点颜色 
            private static extern int GetPixel(IntPtr hdc, Point p);
    
    
    
            // 单击乐特
            private void lete_Click(object sender, EventArgs e)
            {
                System.Diagnostics.Process.Start("http://lete114.github.io/");
            }
            // 窗体加载事件
            private void LeteTools_Load(object sender, EventArgs e)
            {
                this.tm.Enabled = true;
                this.tm.Interval = 1;//timer控件的执行频率
            }
    
            //计时器
            private void tm_Tick(object sender, EventArgs e)
            {
                // 计时器
                Timer tim = new Timer();
                tim.Interval = 1;
                tim.Tick += delegate
                {
                    //获取RGB鼠标当前位置颜色
                    Point p = new Point(MousePosition.X, MousePosition.Y);//取置顶点坐标 
                    IntPtr hdc = GetDC(new IntPtr(0));//取到设备场景(0就是全屏的设备场景) 
                    int c = GetPixel(hdc, p);//取指定点颜色 
                    int r = (c & 0xFF);//转换R 
                    int g = (c & 0xFF00) / 256;//转换G 
                    int b = (c & 0xFF0000) / 65536;//转换B 
                    //RGB.BackColor = Color.FromArgb(r, g, b);
                    lblR255.Text = r.ToString();
                    lblG255.Text = g.ToString();
                    lblB255.Text = b.ToString();
    
    
                    // 用主类实例化,调用convertRGBToHex方法,传入RGB
                    FormMain lt = new FormMain();
                    lblVHEX.Text = lt.convertRGBToHex(r, g, b);
    
                    // 鼠标坐标
                    //方法1:
                    //lblVX.Text = Cursor.Position.X.ToString();
                    //lblVY.Text = Cursor.Position.Y.ToString();
                    //方法2:
                    lblVX.Text = Control.MousePosition.X.ToString();
                    lblVY.Text = Control.MousePosition.Y.ToString();
    
                };
                tim.Start();
    
            }
    
    
            // 计算HEX值
            public String convertRGBToHex(int r, int g, int b)
            {
                String rFString, rSString, gFString, gSString, bFString, bSString, result;
                int red, green, blue;
                int rred, rgreen, rblue;
                red = r / 16;
                rred = r % 16;
                if (red == 10) rFString = "A";
                else if (red == 11) rFString = "B";
                else if (red == 12) rFString = "C";
                else if (red == 13) rFString = "D";
                else if (red == 14) rFString = "E";
                else if (red == 15) rFString = "F";
                else rFString = red.ToString();
    
                if (rred == 10) rSString = "A";
                else if (rred == 11) rSString = "B";
                else if (rred == 12) rSString = "C";
                else if (rred == 13) rSString = "D";
                else if (rred == 14) rSString = "E";
                else if (rred == 15) rSString = "F";
                else rSString = rred.ToString();
    
                rFString = rFString + rSString;
    
                green = g / 16;
                rgreen = g % 16;
    
                if (green == 10) gFString = "A";
                else if (green == 11) gFString = "B";
                else if (green == 12) gFString = "C";
                else if (green == 13) gFString = "D";
                else if (green == 14) gFString = "E";
                else if (green == 15) gFString = "F";
                else gFString = green.ToString();
    
                if (rgreen == 10) gSString = "A";
                else if (rgreen == 11) gSString = "B";
                else if (rgreen == 12) gSString = "C";
                else if (rgreen == 13) gSString = "D";
                else if (rgreen == 14) gSString = "E";
                else if (rgreen == 15) gSString = "F";
                else gSString = rgreen.ToString();
    
                gFString = gFString + gSString;
    
                blue = b / 16;
                rblue = b % 16;
    
                if (blue == 10) bFString = "A";
                else if (blue == 11) bFString = "B";
                else if (blue == 12) bFString = "C";
                else if (blue == 13) bFString = "D";
                else if (blue == 14) bFString = "E";
                else if (blue == 15) bFString = "F";
                else bFString = blue.ToString();
    
                if (rblue == 10) bSString = "A";
                else if (rblue == 11) bSString = "B";
                else if (rblue == 12) bSString = "C";
                else if (rblue == 13) bSString = "D";
                else if (rblue == 14) bSString = "E";
                else if (rblue == 15) bSString = "F";
                else bSString = rblue.ToString();
                bFString = bFString + bSString;
                result = "#" + rFString + gFString + bFString;
                return result;
    
            }
    
            // 进入删除窗体
            private void Zhu_Click(object sender, EventArgs e)
            {
                Delete m = new Delete();
                m.Show();
            }
        }
    }
    

    Delete.cs

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Delete
    {
    
        public partial class Delete : Form
        {
            public Delete()
            {
                InitializeComponent();
            }
    
            // 按钮
            private void btnDelete_Click(object sender, EventArgs e)
            {
                // 获取路径
                string str = txtPath.Text;
                str.Replace("", "/");
                if (str.Equals(""))
                {
                    MessageBox.Show("路径不能为空!", "提示");
                }
                else if (str.Equals("Q:") || str.Equals("W:") || str.Equals("E:") || str.Equals("R:") || str.Equals("T:") || str.Equals("Y:") || str.Equals("U:") || str.Equals("I:") || str.Equals("O:") || str.Equals("P:")|| str.Equals("A:") || str.Equals("S:") || str.Equals("D:") || str.Equals("G:") || str.Equals("H:")|| str.Equals("J:") || str.Equals("K:") || str.Equals("L:") || str.Equals("Z:") || str.Equals("X:")|| str.Equals("C:") || str.Equals("C:") || str.Equals("V:") || str.Equals("B:") || str.Equals("N:")|| str.Equals("M:"))
                {
                    MessageBox.Show("路径不能为盘符!", "提示");
                }
                else
                {
                    getPath(str);
                }
            }
    
            // 窗体加载事件
            private void Main_Load(object sender, EventArgs e)
            {
    
            }
            // 浏览
            private void btnLL_Click(object sender, EventArgs e)
            {
                FolderBrowserDialog f = new FolderBrowserDialog();
                if (f.ShowDialog() == DialogResult.OK)
                {
                    String DirPath = f.SelectedPath;
                    this.txtPath.Text = DirPath;//G:新建文件夹
                }
            }
    
            static List<string> list = new List<string>();//定义list变量
            public List<string> getPath(string path)
            {
                // 获取子目录
                DirectoryInfo dir = new DirectoryInfo(path);
                FileInfo[] fil = dir.GetFiles();
                DirectoryInfo[] dii = dir.GetDirectories();
                foreach (FileInfo f in fil)
                {
                    list.Add(f.FullName);//添加文件的路径到列表
                }
                //获取子文件夹内的文件列表,递归遍历
                foreach (DirectoryInfo d in dii)
                {
                    getPath(d.FullName);
                    list.Add(d.FullName);//添加文件夹的路径到列表
                }
    
                // 删除空目录
                /// 删除掉空文件夹
                /// 所有没有子“文件系统”的都将被删除
                DirectoryInfo[] subdirs = dir.GetDirectories("*.*", SearchOption.AllDirectories);
                foreach (DirectoryInfo subdir in subdirs)
                {
                    FileSystemInfo[] subFiles = subdir.GetFileSystemInfos();
                    if (subFiles.Count() == 0)
                    {
                        subdir.Delete();
                    }
                }
                return list;
            }
        }
    }
    

    Program.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Delete
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new FormMain());
            }
        }
    }
    

    下载地址

    这里顺便推荐个云盘曲奇云盘https://quqi.com用了有几个月了还不错
    同样和百度云一样送2T空间,晚了可能就没有了,关键是不限速

    曲奇云盘:https://quqi.gblhgk.com/s/47889/mAxdzF3Auy0rAN0t

    Github:https://github.com/lete114/C.Tools

    Gitee:https://github.com/lete114/C.Tools

    展开全文
  • 在Swing程序中通常通过鼠标事件的MouseEvent对象,来获取鼠标的坐标,这种情况只能在窗体事件中获取。如果要在窗体最小化或窗体失去焦点后仍要获取鼠标位置的话,就要使用MouseInfo这个对象了。MouseInfo 提供获取...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
    Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标,Y...
  • java实现五子棋 AI算法详解 ...(2)、棋子的呈现方法:鼠标点击指定位置的时候,获取指定位置的坐标,找到与所点击位置距离最近的棋盘上的线条交叉点,在此绘制一个填充圆(注意,java画圆的方法需要提供的参数有...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
    Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标,Y...
  • // 显示窗体的登录进度面板 getGlassPane().setVisible(true); } }*/ public static void main(String[] args) { try { UIManager .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel")...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
    Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标,Y...
  • java源码包4

    千次下载 热门讨论 2013-04-20 11:31:44
    Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标,Y...
  • java截图工具的实现

    千次阅读 2015-11-10 12:07:27
    创建一个全屏的窗体获取屏幕像素设置为窗体内容。再监听鼠标事件,根据鼠标在屏幕上移动的坐标点计算区域,再次获取屏幕像素,写到本地文件中。代码分为两部分,具体如下:ShotScreenMain.java/** * @author 明月...
  • Java窗体Jframe上获取鼠标点击的坐标,其中使用了匿名内部类,实例代码非常简单易懂,大家可以学习一下1. 在窗口的最上方放置一个JLabel标签,标签中的文本默认为“此处显示鼠标右键点击的坐标”2. 为Jframe窗口...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标,Y...
  • java写的画板

    2017-12-05 19:34:25
    3、在鼠标移动时间中实现画笔的逻辑(其实就是绘制直线,鼠标每移动一个像素,就会触发移动事件,通过移动事件获取鼠标的坐标,与上一次移动的坐标连线就可以了; (6)刷子功能 刷子其实就是加粗的画笔,画出来的...
  • 数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...
  • 数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...
  • 数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...
  • Java第十一课——多线程实现飞机大战 ...可以给小球加入一个getX()方法获取小球的x坐标,当x大于窗体长度时移除。因为小球是放在队列里面的,所以队列里可能有很多小球,那么可以用遍历的方式获取到要移除的小
  • 源代码如下(其中其他窗体代码我已省略): import java.awt.*; import java.awt.event.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.*; import java.awt.*; ...
  • Java小白求救啊!!!

    2020-03-20 21:52:04
    //获取鼠标的坐标(getX();获取鼠标的横坐标, getY();获取鼠标的纵坐标) int mx = e.getX(); int my = e.getY(); //让英雄机移动到鼠标的位置(英雄机移动到鼠标的位置,是英雄机的行为,可以...
  • //关闭窗体,并释放一部分资源。 Type fd = new Type(); fd.frame = new JFrame("查询结果如下"); fd.Tname.setText(Tname.getText()); fd.Csex.select(find.next()); fd....
  • (2)生成的JLabel能够改变大小和拖动,先拖动到另一个位置,改变窗体大小后,又回到原来的位置去了。求大神知道下。 看了以前的帖子@raistlic说是重绘问题,但是按帖子方法把setVisible放在添加控件后面不起作用。...
  • // 获取屏幕的大小 private int width = Toolkit.getDefaultToolkit().getScreenSize().width; private int height = Toolkit.getDefaultToolkit().getScreenSize().height; private Point point = new ...
  • java为gui提供的对象都在java.Awt和javax.Swing包中 Awt:抽象窗口工具包,依赖平台,调用系统的本地方法 Swing:完全由java实现的轻量级工具库 ...获取Frame对象,new出来,构造参数:String的窗体标...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

java获取窗体坐标

java 订阅